C語言中的函數指針可以用來存儲函數的地址,并且可以像普通函數一樣調用函數。
以下是函數指針的基本使用方法:
returnType (*pointerName)(parameterType);
例如:
int (*add)(int, int); // 聲明一個指向返回值為int,參數為兩個int的函數的指針變量add
pointerName = &functionName;
例如:
add = ∑ // 將函數sum的地址賦給函數指針變量add
returnType result = pointerName(arguments);
例如:
int result = add(1, 2); // 調用函數指針變量add所指向的函數,并傳遞參數1和2
完整示例代碼如下:
#include <stdio.h>
int sum(int a, int b) {
return a + b;
}
int main() {
int (*add)(int, int); // 聲明一個指向返回值為int,參數為兩個int的函數的指針變量add
add = ∑ // 將函數sum的地址賦給函數指針變量add
int result = add(1, 2); // 調用函數指針變量add所指向的函數,并傳遞參數1和2
printf("Result: %d\n", result); // 輸出結果:Result: 3
return 0;
}
注意:函數指針的類型必須與所指向的函數的類型保持一致,即返回值類型和參數類型必須一致。在聲明函數指針變量時,需要注意使用小括號將*pointerName
括起來,以區分指針變量和普通函數的聲明。