函式指標的用法

2021-06-13 23:50:41 字數 1395 閱讀 6538

定義函式指標兩種方法:

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句基本說明了函式指標的用法 函式指標是指向函式的指標,確切的說,是指向特定型別函式的指標 函式與函...