国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++指向函數的指針使用

2020-02-24 14:31:04
字體:
來源:轉載
供稿:網友

函數指針是指向函數的指針,但是對于許多新手小伙伴們來說對指向函數的指針的使用并不是非常的了解,那么我們現在就去看看C++指向函數的指針使用方法,希望對你有所幫助。

函數指針

現來看看以下聲明語句,看看其含義:

float (*h(int, void (*)(int)))(int); 

以下是一個變量指針的定義語句:

float* pf; 

以下是一個普通函數的聲明語句:

float f(); 

請看以下聲明語句:

float* g(); 

因為()的優先級高于*, 所以相當于:

float* (g()); 

g是一個函數, 返回值為float*, 參數為void

float (*h)(); 

中, h是個指針, 指向一個返回值為float的函數.
去掉h, 就是h的類型:

float (*)(); 

若要調用h所指的函數, 解引用這個指針即可:

(*h)(); 

它的縮寫為(注意, 僅僅是縮寫):h();
注意不能將(*h)兩邊的括號去掉, 去掉后,*h()等價于*(h()). ANSI C會把它認為是以下語句的縮寫:

*((*h)()); 

上面的語句表示: 執行h所指向的函數, 然后解引用函數的返回值.
若h指向的函數有參數, 參數是指向函數的指針呢? 假設該參數的類型為: void (*)(int), 則h可以聲明為:

float (*h)(void(*)(int)); 

已知有以下函數的聲明:

float func(int); 

若要使h指向函數func, 只需要將(*h)替換func即可:

float (*h)(int); 

更進一步, h所指的函數不返回float, 而是返回指向函數的指針呢? 該指針的類型為float(*)(int).

float (*h(parameter))(int); 

其中parameter為h所指函數的參數, 假設參數類型有兩個, 一個為int型, 一個類型為: void (*)(int), 則最終的結果為:

float (*h(int, void (*)(int)))(int); 

本文以實例形式展示了C++指向函數的指針使用方法,是深入學習C++所必須掌握的關鍵知識點。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长岛县| 茌平县| 桑日县| 乐平市| 根河市| 丽江市| 临邑县| 民权县| 木兰县| 孝感市| 四川省| 娄底市| 珲春市| 潼南县| 五河县| 右玉县| 西乌珠穆沁旗| 马鞍山市| 东源县| 祁连县| 清新县| 龙川县| 渑池县| 博罗县| 上饶县| 荆州市| 丰台区| 开平市| 全椒县| 泰州市| 栖霞市| 湘潭县| 靖远县| 九龙坡区| 顺平县| 沁源县| 广水市| 调兵山市| 汶上县| 云霄县| 太原市|