函式指標 函式指標陣列

2021-09-27 02:58:58 字數 1529 閱讀 8748

輸出的是兩個位址,這兩個位址是 test 函式的位址。 那我們的函式的位址要想儲存起來,怎麼儲存?

下面我們看**:

void test() 

//下面pfun1和pfun2哪個有能力存放test函式的位址?

void (*pfun1)();

void *pfun2();

pfun1可以存放。pfun1先和*結合,說明pfun1是指標,指標指向的是乙個函式,指向的函式無引數,返回值型別為void.

陣列是乙個存放相同型別資料的儲存空間,那我們已經學習了指標陣列了,比如:

int *arr[10];

//陣列每個元素是int*

那要把函式的位址存到乙個陣列中,那這個陣列就叫指標陣列,那函式指標的陣列如何定義呢?

int (*parr1[10])();

int *parr2[10]();

int (*)()parr3[10];

答案是:parr1 parr1 先和 結合,說明parr1是陣列,陣列的內容是什麼呢? 是 int (*)() 型別的函式指標。

函式指標陣列的用途: 轉移表(計算機)

**1

#include#includeint add(int a, int b)

int sub(int a, int b)

int mul(int a, int b)

int chu(int a, int b)

int main()

printf("ret = %d\n", ret);

} system("pause");

return 0;

}

使用函式指標陣列的實現:

#include#includeint add(int a, int b)

int sub(int a, int b)

int mul(int a, int b)

int chu(int a, int b)

int main()

;//轉移表

while (input)

else

printf("ret = %d\n", ret);

} system("pause");

return 0;

}

指向函式指標陣列的指標是乙個指標,指標指向函式,陣列的元素都是函式指標。

那麼到底該怎麼定義呢?

void test(const char* str) 

int main()

指標陣列,陣列指標,指標函式,函式指標

int p 4 指標陣列。是個有4個元素的陣列,每個元素的是指向整型的指標。int p 4 陣列指標。它是乙個指標,指向有4個整型元素的陣列。int func void 指標函式。無參函式,返回整型指標。int func void 表示函式指標,可以指向無參,且返回值為整型指標的函式。右左規則 因為...

陣列指標,指標陣列,函式指標,指標函式

陣列指標,指標陣列,函式指標,指標函式 指標 變數,存放變數的位址。例 int ptr,ptr是乙個指向整形變數的指標 陣列 例 int a 10 定義了乙個具有10個元素的一維陣列,其中陣列的每個元素是乙個int型別。陣列指標 陣列首元素位址的指標,即是指向陣列的指標。例 int ptr 10 c...

指標陣列 陣列指標 指標函式 函式指標

int p 4 指標陣列。是個有4個元素的陣列,每個元素的是指向整型的指標。陣列的每個元素都是指標 int p 4 陣列指標。它是乙個指標,指向有4個整型元素的陣列。乙個指標指向有4個整型元素的陣列 int func void 指標函式。無參函式,返回整型指標。函式的返回值為int int func...