本博文**基於vc++開發除錯
只是對函式指標的乙個學習筆記;
顯然函式指標是乙個指標,而且是乙個指向函式的指標;c語言中,定義乙個函式後,編譯時編譯器會為這個函式開闢一段記憶體空間,函式指標這個記憶體空間的起始位址(入口位址)成為這個函式的指標;
定義:*型別名 (指標變數名)(函式引數列表)
如
int (*name) (int a,int b) //函式型別為整型,指標函式名為name,函式形參為兩個整型
1.函式名呼叫法;(這個太簡單,不討論)
2.指標變數呼叫法;
舉例:(輸出兩個數中的最大數)
#include void main()
int max(int a,int b)
特別注意:int (*p)(int a,int b); 代表定義宣告乙個返回值為整型值的函式;
int *p(int a,int b); 代表定義宣告乙個返回值為整型位址的函式;
應用1:函式指標的靈活賦值
利用函式名呼叫函式,只能呼叫所指定的函式,而通過指標變數呼叫函式就比較靈活了,可以根據具體問題,先後或選擇性的對函式指標變數賦值;舉例:
要求:輸入兩個數,,然後讓使用者選擇1或2,選擇1時呼叫max函式,輸出兩個數中的最大值,選擇2時呼叫min函式,輸出兩個數中的最小值;
#include void main()
else if(c==2)
printf("\n"); }
int max(int a,int b)
執行結果:
應用2:函式指標做函式引數
指標是作為函式引數的乙個重要應用;
舉例:要求通應用1;
#include void main()
int fun(int a,int b,int (*p)(int a,int b))
int max(int a,int b)
執行結果:
C語言 指標函式和函式指標
指標函式和函式指標 指標函式其實是乙個簡稱,是指帶指標的函式,它本質上是乙個函式,只是返回的是某種型別的指標。其定義的格式為 型別識別符號 函式名 參數列 函式指標,從本質上說是乙個指標,只是它指向的不是一般的變數,而是乙個函式。因為每個函式都有乙個入口位址,函式指標指向的就是函式的入口位址。其定義...
C語言 指標函式和函式指標
1 指標函式是指帶指標的函式,本質上是乙個函式,函式返回值是某一型別的指標 定義 型別識別符號 函式名 參數列 int f int x,int y 它首先是乙個函式,只不過這個函式的返回值是乙個位址值,函式返回值必須用同型別的指標變數來接受,也就是說,指標函式一定有函式返回值,而且,在主調函式中,函...
c語言函式指標與指標函式
include include include using namespace std 1 c語言函式指標 解釋 這是一種很特殊的指標,它的指向是乙個函式的入口 作用 該指標可以接受乙個函式的位址,代表這個函式執行函式的操作 函式指標舉例 下面是乙個函式指標pfunc,它只能指向返回值為float,...