首先讓我們看一段**:
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...