c程式在編譯時,每乙個函式都有乙個入口位址,該位址就是函式指標所指向的位址。有了指向函式的指標變數後,可用該指標變數呼叫函式,就如同用指標變數可引用其他型別變數一樣,其概念上是一致的。函式指標有兩個用途:呼叫函式和做函式的引數。
函式指標的宣告方法如下:
函式型別(標誌符 指標變數名)(形參列表)
注:1)「函式型別」:說明該函式的返回型別;
2)「(標誌符 指標變數名)」:該括號不能省略,說明了乙個返回的資料型別是指標的函式
3)「形參列表」:表示指標變數指向的函式所帶的引數列表。
舉例:int func(int x , int y) //宣告乙個函式
int (*f)(int x, int y) //宣告乙個函式指標
f = func; //將func函式的首位址賦給指標f;
賦值時函式func不帶括號,也不帶引數,由於func代表函式的首位址,因此經過賦值以後,指標f就指向函式func(int x, int y)的**的首位址。
測試**如下:
#include void test(char *str)
int main()
有些編譯器可能編譯不通過,需要改為如下的形式:
#include typedef void (*t_ptr)(char*);
void test(char *str)
int main()
另乙個函式指標陣列的例如:
#include typedef void (*init_func)(void);
void hello1(void)
void hello2(void)
void hello3(void)
static init_func init = ;
int main()
return 0;
}
C 中的函式指標
函式指標也叫指向函式的指標,它是為了提高函式的通用性而引入的。比較傳統的方法是在函式中增加引數,通過增加的引數來判斷到底要用什麼函式,這樣的缺點是靈活性差,為了支援多種方法要在函式中要寫很多分支判斷語句。比如,你要計算乙個函式值 如sin x,log10 x 的平方,按照傳統的方法你可以這樣寫這個函...
C 中的函式指標
在c 中,指標變數可以指向普通變數 字串和陣列等,同時也可以指向函式,因為乙個函式在編譯時被分配乙個入口位址,這個入口位址即為該函式的指標。所以,可以用指標變數指向函式,然後通過該指標變數呼叫此函式。在c 中,函式的名稱就代表了一般定義形式為 資料型別表示符 指標變數名 例如 int p 程式示例 ...
C 中的指標 二 函式指標
原帖及討論 http bbs.bc cn.net dispbbs.asp?boardid 56 id 92806 先說一下c式的函式 指標。這種函式 指標的應用十分廣泛。對於任何函式 void print string s 它的指標這樣定義 void pfun string null pfun pr...