|
发表于 2020-4-16 16:03:19
|
显示全部楼层
本帖最后由 Cool_Breeze 于 2020-4-16 16:31 编辑
- #include <stdio.h>
- int add(int ,int);
- int sub(int ,int);
- int (* p(char opt)\
- /*
- p(char opt) 表示函数p有一个参数是char类型,返回值是函数的指针int(*)(int,int)
- */
- )(int,int);
- int call(int (*mp)(int,int)\
- /*
- 这个参数就是函数指针;
- */
- , int a, int b);
- int main(void)
- {
- int a=10,b=5;
- int (*methodp)(int,int);//创建一个函数指针;
- methodp=p('+');//p在前面已经声明了(p的返回类型就是函数指针);
- printf("%d + %d = %d\n",a,b,call(methodp,a,b));
- printf("%d - %d = %d\n",a,b,call(methodp=p('-'),a,b));
- return 0;
- }
- int add(int a, int b)
- {
- return a+b;
- }
- int sub(int a, int b)
- {
- return a-b;
- }
- int call(int (*mp)(int,int),int a,int b)
- {
- return mp(a,b);
- }
- int (* p(char opt))(int,int)
- {
- switch (opt)
- {
- case '+' : return add;
- case '-' : return sub;
- }
- }
复制代码 |
|