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