#include <stdio.h>
int add(int a,int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int (*Sel(char op))(int a, int b)
{
if (op == '+')
return add;
if (op == '-')
return sub;
return 0;
}
int main()
{
int (*p)(int a, int b);
p = Sel('+');
printf("%d\n", p(3, 5));
p = Sel('-');
printf("%d\n", p(3, 5));
}
返回值是一个函数指针,其实就是返回的是一个函数;
int (*Sel(char op))(int a, int b)
{
if (op == '+')
return add;
if (op == '-')
return sub;
return 0;
}
通过调用Sel函数,如果传递的参数‘+’号就返回函数add,如果时‘-’号就返回函数sub;
Sel函数是一个返回值为int,并且带两个int类型参数的函数指针;char op是调用函数所需要的参数;