函式指標 函式指標陣列 函式指標的陣列的指標的概念

2021-08-19 21:51:18 字數 1288 閱讀 4235

首先讓我們看一段**:

int add(int x,int y)

int main()

·這是結果:

·這是我們add函式的位址,我們給出函式的指標變數用來存放某一函式的位址。

int (*p)(int ,int)
·定義p為乙個指向函式的指標變數,它可以指向函式的型別為整型且有兩個整型引數的函式。注:如果寫成*p(int,int),那麼*則是對函式的返回值進行解引用。·陣列是⼀個存放相同型別資料的儲存空間,那要把函式的位址存到⼀個陣列中,那這個陣列就叫函式指標陣列,那函式指標的陣列如何定義呢?

int (*parr1[10]])();
·parr1先和[ ]結合,說明parr1這是乙個陣列,陣列的內容為int(*)( )型別的函式指標。

·那麼函式指標陣列有什麼用呢?我們那下面的轉移表進行舉例。

·**如下圖所示:

#include int add(int a, int b)

int sub(int a, int b)

int mul(int a, int b)

int div(int a, int b)

int main()

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

} return 0;

}

·這是我用switch呼叫函式實現的乙個計算器,那麼如果用函式指標陣列應該如何實現呢?

int main()

; //轉移表

while (input)

else

printf( "輸⼊有誤\n" );

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

} return 0;

}

·我們給出了main函式的寫法,我們將每個函式存放在這個陣列當中,定義乙個函式指標陣列,通過輸入input來選擇所需要的函式,這樣的寫法是否比上面的更加優化而且簡單了呢?

·指向函式指標陣列的指標是⼀個指標。

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

void test(const char* str)

int main()

·如上圖所示,這就是函式指標的陣列的指標的定義。

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

函式指標的使用 先看如下例子 include include char fun char p1,char p2 else int main 我們使用指標的時候,需要通過鑰匙 來取其指向的記憶體裡面的值,函式指標使 用也如此。通過用 pf 取出存在這個位址上的函式,然後呼叫它。這裡需要注意到是,在 v...

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

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...