示例代码:
#include "stdio.h"
int add(int a, int b);
int main() {
int numa1 = 1, numb1 = 2;
int numa2 = 2, numb2 = 3;
int (*op)(int, int);
op = add;
op = add;
printf("%d %d\n", op(numa1, numb1), op(numa2, numb2));
return 0;
}
int add(int a, int b) {
return a+b;
}
或者:
#include "stdio.h"
int add(int a, int b);
int main() {
int numa1 = 1, numb1 = 2;
int numa2 = 2, numb2 = 3;
int (*op[2])(int, int);
op[0] = add;
op[1] = add;
printf("%d %d\n", op[0](numa1, numb1), op[1](numa2, numb2));
return 0;
}
int add(int a, int b) {
return a+b;
}
函数返回指向函数的指针变量:
#include <stdio.h>
int (*choice(int v))(int v1, int v2);
int max(int v1, int v2);
int min(int v1, int v2);
int main() {
typedef int (*pf)(int, int);
pf pmax = choice(1);
pf pmin = choice(2);
int v1 = 112, v2 = 521;
printf("Max is : %d\n", pmax(v1, v2));
printf("Min is : %d\n", pmin(v1, v2));
return 0;
}
int (*choice(int v))(int v1, int v2) {
if(v == 1) {
return max;
} else if(v == 2) {
return min;
}
}
int max(int v1, int v2) {
return v1 > v2 ? v1 : v2;
}
int min(int v1, int v2) {
return v1 < v2 ? v1 : v2;
}