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

C說話 函數指針(指向函數的指針)詳解

編輯:關於C++

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


一個函數老是占用一段持續的內存區域,函數名在表達式中有時也會被轉換為該函數地點內存區域的首地址,這和數組名異常相似。我們可以把函數的這個首地址(或稱進口地址)付與一個指針變量,使指針變量指向函數地點的內存區域,然後經由過程指針變量便可以找到並挪用該函數。這類指針就是函數指針。

函數指針的界說情勢為:

returnType (*pointerName)(param list);

returnType 為函數前往值類型,pointerNmae 為指針稱號,param list 為函數參數列表。參數列表中可以同時給出參數的類型和稱號,也能夠只給出參數的類型,省略參數的稱號,這一點和函數原型異常相似。

留意( )的優先級高於*,第一個括號不克不及省略,假如寫作returnType *pointerName(param list);就成了函數原型,它注解函數的前往值類型為returnType *。

【實例】用指針來完成對函數的挪用。

#include <stdio.h>
//前往兩個數中較年夜的一個
int max(int a, int b){
 return a>b ? a : b;
}
int main(){
 int x, y, maxval;
 //界說函數指針
 int (*pmax)(int, int) = max; //也能夠寫作int (*pmax)(int a, int b)
 printf("Input two numbers:");
 scanf("%d %d", &x, &y);
 maxval = (*pmax)(x, y);
 printf("Max value: %d\n", maxval);
 return 0;
}

運轉成果:

Input two numbers:10 50↙
Max value: 50

第 14 行代碼對函數停止了挪用。pmax 是一個函數指針,在後面加 * 就表現對它指向的函數停止挪用。留意( )的優先級高於*,第一個括號不克不及省略。

以上就是對 C說話函數指針的材料整頓,後續持續彌補相干材料,感謝年夜家對本站的支撐!

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