概念
函数指针数组:函数指针的数组。
定义
返回值类型 ( *指针变量名[]) ([形参列表])
源码参考
#include <stdio.h>
/* 函数声明 */
double add(double a,double b); //加
double sub(double a,double b); //减
double mul(double a,double b); //乘
double div(double a,double b); //除
void test(); //打印数传
/* 全局变量 */
/* 定义方法1 */
double (*Func[])(double, double) = {
add,sub,mul,div
}; //函数指针数组
/* 定义方法2 */
typedef double (*oper_func[])(double, double);
oper_func p= {add,sub,mul,div};
/* 函数定义 */
double add(double a,double b)
{
return a+b;
}
double sub(double a,double b)
{
return a-b;
}
double mul(double a,double b)
{
return a*b;
}
double div(double a,double b)
{
return a/b;
}
void test()
{
int a = 20;
int b = 3;
printf("a+b = %f\n", Func[0](a, b));
printf("a-b = %f\n", Func[1](a, b));
printf("a*b = %f\n", Func[2](a, b));
printf("a/b = %f\n", Func[3](a, b));
printf("a+b = %f\n", p[0](a, b));
printf("a-b = %f\n", p[1](a, b));
printf("a*b = %f\n", p[2](a, b));
printf("a/b = %f\n", p[3](a, b));
}
/* 主函数 */
int main()
{
test();
return 0;
}
输出结果: