程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++指向函數的指針用法詳解

C++指向函數的指針用法詳解

編輯:關於C++

C++指向函數的指針用法詳解。本站提示廣大學習愛好者:(C++指向函數的指針用法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C++指向函數的指針用法詳解正文


本文以實例情勢展現了C++指向函數的指針用法,是深刻進修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++法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved