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說話函數指針的材料整頓,後續持續彌補相干材料,感謝年夜家對本站的支撐!