函數指標讓函數成為一等公民,可存入變數、陣列、作參數傳遞。本文示範基本用法:定義函數指標變數,指向不同運算函數並呼叫。
int (*p)(int, int); /* 指向「接受兩 int、回傳 int」的函數 */
#include
int add(int a, int b) { return a + b; }
int sub(int a, int b) { return a - b; }
int mul(int a, int b) { return a * b; }
int div(int a, int b) { return a / b; }
int main() {
int (*p)(int, int); /* 函數指標變數 */
p = add; printf("add = %d\n", p(20, 10));
p = sub; printf("sub = %d\n", p(20, 10));
p = mul; printf("mul = %d\n", p(20, 10));
p = div; printf("div = %d\n", p(20, 10));
return 0;
}