乙個函式有其對應的記憶體位址,函式的執行是從這個位址開始的,如果用指標呼叫乙個函式僅有函式位址是不夠的,還必須提供函式的返回值型別,引數的個數及型別。特定型別的函式指標只能指向特定型別的函式,eg:
int (*pfun)(int,int)//create a function pointer.
int sum(int a ,int b)// calculates a+b.
int product(double x,double y)//calculates a*b.
pfun=sum;
如果定義了pfun的函式指標,pfun=sum,即函式指標指向sum函式是正確的,但是如果指向product函式編譯可以通過但是會得到意外的結果。
參考例子學習函式指標的應用,函式指標指向一類特定的函式,而不是某乙個函式。
#include
#include
int sum(int ,int );//函式宣告
int product(int ,int );
int difference(int ,int );
int main(void)
int sum(int x ,int y)
int product(int x,int y)
int difference(int x,int y)
函式指標也有其陣列形式,同定義普通的陣列是一樣 的,eg:int (*pfunction[3])(int);這條語句定義了乙個包含3個元素的pfunction陣列,這個陣列裡的每乙個元素都可以儲存乙個函式的位址,如上例:
pfunction[0]=sum;
pfunction[1]=product;
pfunction[2]=difference;
c語言 函式 用指標傳遞引數 問題
問題1 你是把變數傳給了函式,還是把位址傳給了函式?例 include stdio.h include stdlib.h include string h void oxx char dest void oxx2 char dest intmain 同樣是傳了指標給函式,對指標進行了不同的操作 1 ...
C語言 返回指標的函式 指標函式
人之所以痛苦,那是因為你在成長。magic guo 函式可以返回整形 字串 實型值 無返回值 也可以返回指標型別的資料,即返回乙個記憶體位址,像這樣返回位址的函式成為指標函式。其概念與普通的函式一樣,只不過返回值的型別為指標型別。定義返回指標值的函式的一般形式為 型別名 函式名 引數列表 例如 in...
C語言 指標函式和函式指標
指標函式和函式指標 指標函式其實是乙個簡稱,是指帶指標的函式,它本質上是乙個函式,只是返回的是某種型別的指標。其定義的格式為 型別識別符號 函式名 參數列 函式指標,從本質上說是乙個指標,只是它指向的不是一般的變數,而是乙個函式。因為每個函式都有乙個入口位址,函式指標指向的就是函式的入口位址。其定義...