文章目录
函数指针数组
#include <stdio.h>
#include <stdlib.h>
int add(int a, int b){
return a + b;
}
int sub(int a, int b){
return a - b;
}
int main (int argc, char **argv) {
int (*operate_func[])(int, int) ={add, sub};
int myresult = 0;
int oper = atoi(*++argv);
printf("%d\n", oper);
int mynum;
while (*++argv != NULL) {
mynum = atoi(*argv);
printf("%d ", mynum);
myresult = operate_func[oper](myresult, mynum);
}
printf("\n%d\n", myresult);
return 0;
}
// ./test 0 1 13 52
// 0 ->参数含义是调用add函数,实际上是按照下标进行访问,
// 如果是 1 就调用sub函数。
// 1 13 52 -> 依次读取数据进行累加。
// 66 -> 最终累加和。