定義函式指標兩種方法:
1. typedef int (*myfun)(int, int);
2. int(*myfun)(int,int);
上面的例子定義myfun
是乙個函式指標, 函式型別是帶兩個int 引數, 返回乙個int
在分析這種形式的定義的時候可以用下面的方法:
先去掉typedef 和別名,剩下的就是原變數的型別.
去掉typedef和myfun以後就剩:
int (*)(int, int)
簡單用法:
typedef char(*pfun)(int) ;
char glfun(int a)
void main()
pfun =glfun;
(*pfun)(2);
第一行定義了乙個指標變數pfun.它是乙個指向某種函式的指標,這種函式引數是乙個int型別,返回值是char型別。只有第一句我們還無法使用這個指標,因為我們還未對它進行賦值。
第二行定義了乙個函式glfun().該函式正好是乙個以int為引數返回char的函式。我們要從指標的層次上理解函式-函式的函式名實際上就是乙個指標,函式名指向該函式的**在記憶體中的首位址。
下面是乙個詳細例子:
//#include#includetypedef int (*fp_calc)(int, int);
int add(int a, int b)
int sub(int a, int b)
int mul(int a, int b)
int div(int a, int b)
//定義乙個函式,引數為op,返回乙個指標。該指標型別為 擁有兩個int引數、
//返回型別為int 的函式指標。它的作用是根據操作符返回相應函式的位址
fp_calc calc_func(char op)
return null;
}//s_calc_func為函式,它的引數是 op,
//返回值為乙個擁有 兩個int引數、返回型別為int 的函式指標
int (*s_calc_func(char op)) (int, int)
//終端使用者直接呼叫的函式,該函式接收兩個int整數,和乙個算術運算子,返回兩數的運算結果
int calc(int a, int b, char op)
void main()
函式指標的用法
函式指標的用法 by zieckey 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址來呼叫陣列資料,也可以使用指標變數指向函式 的首位址來呼叫函式,指向函式 首位址的指標變數就稱為函式指標。1 函式指標定義 函式型別 指標變...
函式指標的用法
函式指標是指向函式的指標變數,即本質是乙個指標變數。區別於指標函式,指標函式是指帶指標的函式,即本質是乙個函式,函式返回型別是某一型別的指標。函式指標和指標函式是大部分在學c語言時比較頭疼的乙個概念,今天我給大家簡單分析下 1.指標函式的使用與宣告如下 型別識別符號 函式名 參數列 int f x,...
C C 函式指標,指標函式的用法,用處
先看函式指標 int func2 int x 宣告乙個函式 int q2 int x 宣告乙個函式指標 q2 func2 將func函式的首位址賦給指標f int c q2 3 3可以為任意實參 上面4句基本說明了函式指標的用法 函式指標是指向函式的指標,確切的說,是指向特定型別函式的指標 函式與函...