函数指针作为函数的返回值代码示例
将函数指针作为返回值返回值的函数申明:
return_func_return_type (*fun_name(fun_type)) (return_func_input_type);
//用自己的方法标注的
//return_func_return_type 第一个type是返回函数指针指向函数的返回值类型
//fun_type 第二个type是该函数的参数类型,*表示函数返回值是指针类型
//return_func_input_type 第三个type是返回函数指针指向函数的参数类型
总结:
一共三部分:
中间的部分是该函数部分;
两边是返回指针函数所指向函数的部分,前面是返回值类型,后面是参数类型。
代码示例
#include<stdio.h>
float add(float,float);
float sub(float,float);
float mul(float,float);
float divi(float,float);
float (*cal(char)) (float,float);
float add(float a,float b)
{
return a+b;
}
float sub(float a,float b)
{
return a-b;
}
float mul(float a,float b)
{
return a*b;
}
float divi(float a,float b)
{
return a/b;
}
float (*cal(char b)) (float,float)
{
switch (b)
{
case '+':return add;
case '-':return sub;
case '*':return mul;
case '/':return divi;
}
}
int main()
{
float a,c;
char b;
printf("输入:");
scanf("%f%c%f",&a,&b,&c);
if(b=='/'&&c==0)
{
printf("错误:被除数不能为零\n");
}
else
{
printf("%.2f%c%.2f=%.2f\n",a,b,c,cal(b)(a,c));
}
return 0;
}