函式指標,顧名思義是指向乙個函式的。如下
int (*pstr)(char ,char);
這個裡面,pstr就是所謂的函式指標,也就是指向乙個函式的起始位址;而這個函式必須是以兩個char型為引數、返回int型的函式。
所以,上面只是定義了乙個函式指標,而並沒有初始化;初始化之後,還要去呼叫來使用。
在日常的工作中,會看到很多typedef,那麼typedef什麼作用呢?
簡單的說,就是定義一種新的型別,目的是什麼?目的是為了方便使用而已;
如上面的函式指標:
int (*pstr)(char,char);
每次使用都要去定義乙個,如下:
int (*pstr1)(char,char);
int (*pstr2)(char,char);
這個時候,就是typedef發揮作用的時候了;如下定義:
typedef int (*mypstr)(char,char);
這裡呢,就定義了乙個函式指標的別名,mypstr;
這個mypstr呢,其實是和上面的 pstr1,pstr2是一樣的,這裡一樣是指的引數和返回值。
那麼,以後在使用函式指標的時候呢,就可以像下面一樣使用了:
結論:
1. typedef只是定義一種新型別而已,而要想去除這麼繁瑣的字元,很簡單:
去掉typedef,去掉變數名並使用func替換;
如上述的 typedef int (*mypstr)(char,char);替換之後就變成 int func(char,char);那這就是它的廬山真面目了!
2. 函式指標的使用中,一定要注意函式指標的引數和返回值!
函式指標和函式指標陣列及其應用
先來看乙個簡單的例子。int a 3 void p a 這是乙個基礎的不能再基礎的例子。相信學過指標的都能看得懂。p是乙個指標,指向a。a 是乙個整形變數。函式指標和其類似,只不過其指向的不是乙個變數,而是乙個函式,僅此而已。話不多說,看個例子。void funcpointer double x v...
函式指標和typedef的應用
首先寫個函式指標的例子 int pfun int,int 通過括號強行將pfun首先與 結合,也就意味著,pfun是乙個指標,接著與後面的 結合,說明該指標指向的是乙個函式,然後再與前面的int結合,也就是說,該函式的返回值是int。由此可見,pfun是乙個指向返回值為int的函式的指標。雖然它們只...
函式指標的應用
函式的指標 include using namespace std void fun1 int a,int n void fun2 int a,int n int main fun a,5 步驟4 cout fun fun2 fun a,5 fun fun1 fun a,5 return 0 函式指...