函數(shù)指針的定義,賦值,調用

http://www.cnblogs.com/windlaughing/archive/2013/04/10/3012012.html

void myFun(int x);? ? //聲明也可寫成:void myFun( int );

int main()

{

myFun(100);//一般的函數(shù)調用

return 0;

}

void myFun(int x)

{

printf("myFun: %d\n",x);

}

函數(shù)指針變量的聲明:

void (*funP)(int) ; ? //聲明一個指向同樣參數(shù)、返回值的函數(shù)指針變量。

(整個函數(shù)指針變量的聲明格式如同函數(shù)myFun的聲明處一樣,只不過——我們把myFun改成(*funP)而已,這樣就有了一個能指向myFun函數(shù)的指針了。當然,這個funP指針變量也可以指向所有其它具有相同參數(shù)及返回值的函數(shù)。)

#include#includevoid (*funP)(int);? //聲明也可寫成void(*funP)(int x),但習慣上一般不這樣。

void (*funA)(int);

void myFun(int x);? ? //聲明也可寫成:void myFun( int );

int main()

{

//一般的函數(shù)調用

myFun(100);

//myFun與funP的類型關系類似于int 與int *的關系。

funP=&myFun;? //將myFun函數(shù)的地址賦給funP變量

(*funP)(200);? //通過函數(shù)指針變量來調用函數(shù)

//myFun與funA的類型關系類似于int 與int 的關系。

funA=myFun;

funA(300);

//三個貌似錯亂的調用

funP(400);

(*funA)(600);

(*myFun)(1000);

return 0;

}

void myFun(int x)

{

printf("myFun: %d\n",x);

}

總結:

1、 其實,myFun的函數(shù)名與funP、funA函數(shù)指針都是一樣的,即都是函數(shù)指針。myFun函數(shù)名是一個函數(shù)指針常量,而funP、funA是函數(shù)數(shù)指針變量,這是它們的關系。

2、但函數(shù)名調用如果都得如(*myFun)(10)這樣,那書寫與讀起來都是不方便和不習慣的。所以C語言的設計者們才會設計成又可允許myFun(10)這種形式地調用(這樣方便多了,并與數(shù)學中的函數(shù)形式一樣)。

3、 為了統(tǒng)一調用方式,funP函數(shù)指針變量也可以funP(10)的形式來調用。

4、賦值時,可以寫成funP=&myFun形式,也可以寫成funP=myFun。

5、但是在聲明時,void myFun(int )不能寫成void (*myFun)(int )。void (*funP)(int )不能寫成void funP(int )。

6、函數(shù)指針變量也可以存入一個數(shù)組內。數(shù)組的聲明方法:int (*fArray[10]) ( int );

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.語言中變量的實質 要理解C指針,我認為一定要理解C中“變量”的存儲實質, 所以我就從“變量”這個東西開始講起吧...
    金巴多閱讀 1,979評論 0 9
  • 指針是C語言中廣泛使用的一種數(shù)據類型。 運用指針編程是C語言最主要的風格之一。利用指針變量可以表示各種數(shù)據結構; ...
    朱森閱讀 3,624評論 3 44
  • ?。?!注意:因為簡書的顯示格式緣故,所以“ * ”顯示會出現(xiàn)問題,可能有些星號由于疏忽未改動格式,造成沒有顯示,請...
    Eric_Hunter閱讀 1,170評論 0 0
  • __block和__weak修飾符的區(qū)別其實是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用,...
    LZM輪回閱讀 3,609評論 0 6
  • 那是七十年代的事了,今天回憶起來不太清楚當時是幾幾年,也記不清當時的年齡,大致有十二、三歲的樣子,好像還在上小學,...
    為塵閱讀 405評論 1 1

友情鏈接更多精彩內容