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; }運行結果:
( )
的優先級高於*
,第一個括號不能省略。