c++中的指標總是這麼微妙,c++中的函式作為乙個**段,在程式執行時也會存在記憶體中,既然是存在記憶體中的,那麼強大的指標也就能夠抓住他咯。讓乙個指標指向不同的函式那麼就可以利用這個指標方便地呼叫不同的函式,實現靈活自如地呼叫同一型別函式。
函式指標常常作為許多api中的**介面,總之是很有用的東西。
使用函式指標必須遵守一定的規則:
函式指標必須指向乙個與他具有相同返回值型別和參數列的函式。
定義乙個函式指標的語法為:
返回值型別 (*指標名)(引數列表);
例如:
int (*pfunction)(int,float,double);//為了說明這是乙個函式指標而不是乙個整形指標,這裡的括號是必須的。至於形參的名稱,沒有必要存在啦。
那麼怎麼獲取函式的位址讓指標指向函式呢?
其實函式名就代表這函式的位址,那麼我們可以這樣做
int add(int a, int b);
int (*pfun)(int,int) =add;
由於函式名就是指向這個函式的指標,所以我們通常這樣呼叫乙個函式:
int resoult = add(4,5);
這裡的add就是指向函式的記憶體位址,pfun又是指向add的指標那麼我們自然可以這樣做:
int resoult =(*pfun)(3,5);//取出函式指標中的值(就是它指向的函式)來傳入引數
甚至,你還可以這樣做:
int resoult = ofun(4,9);//
可以通過這個指標名直接
下面是我寫的乙個使用例子:
執行結果:
C 中指標函式與函式指標的使用
指標函式 指標函式是乙個函式,只不過指標函式返回的型別是某一型別的指標。格式 型別名 函式名 函式引數列表 使用 指標函式,返回int 指標變數 int add int a,int b int main 函式指標 函式指標是指向函式的指標變數。所以函式指標其實是指標變數,只不過該指標變數指向函式。格...
c 函式指標的使用
關於c 中函式指標的使用 包含對typedef用法的討論 一 簡單的函式指標的應用。形式1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面提到的 形式1 認識到它是乙個指向某種函式的指標,...
C 函式指標的使用
函式指標指向某種特定型別,函式的型別由其引數及返回型別共同決定,與函式名無關。舉例如下 int add int nleft,int nright 函式定義 該函式型別為int int,int 要想宣告乙個指向該類函式的指標,只需用指標替換函式名即可 int pf int,int 未初始化 則pf可指...