函數(shù)指針&&指針函數(shù)
這部分的內(nèi)容對我一直是個盲區(qū),今天想起來掃雷了,整理了這部分的內(nèi)容,也希望幫助大家。
1、函數(shù)指針
如果在函數(shù)中定義了一個函數(shù),在編譯時,編譯系統(tǒng)為函數(shù)代碼分配一段存儲空間,這段存儲空間的起始地址(又稱入口地址)稱為這個函數(shù)的指針。
定義一般函數(shù)指針的形式: 類型名? ?(*指針變量名)? (函數(shù)參數(shù)列表)
例:int (*p)(int,int);
p是一個指向函數(shù)的指針變量。p的類型為:int(*)(int,int)表示。
2、指針函數(shù)
指針函數(shù)是一個函數(shù),函數(shù)都有返回類型(如果不返回值則為無類型值),只不過指針函數(shù)返回類型的是某一類型的指針。
定義一般函數(shù)指針的形式:
類型名? ?*函數(shù)名? (函數(shù)參數(shù)列表)
例子:int? *p(int,int);等價? ? (int *)? ?p(int,int);
p是函數(shù)名,調(diào)用它以后能得到一個int *型(指向整形數(shù)據(jù))的指針。
PS:“()” 為初等運算符,優(yōu)先級高于“*”指針運算符,且“*”運算符是自右往左結(jié)合。就變成了 (int *)? ?p(int,int);? 其實我覺得只要搞懂了運算符的先后結(jié)合順序,這部本內(nèi)容也就懂了。