您的位置:首页 > 其它

SSD6 Exercise0: 函数指针数组的使用实例

2017-07-25 23:12 323 查看
程序用途:提示使用者输入两个数字,然后进行简单的计算(加减乘除和平方)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double Add(double x,double y){return x+y;}
double Sub(double x,double y){return x-y;}
double Mul(double x,double y){return x*y;}
double Div(double x,double y){return x/y;}

//五个函数指针的数组,这些函数需要两个double参数,且返回值也是double
double(*funTable[5])(double,double)={Add,Sub,Mul,Div,pow};

//字符串指针的数组
char *magTable[5]={"Sum","Difference","Product","Quotient","Power"};

int main(){
int i;
double x=0,y=0;

printf("Enter two operands for some arithmetic:\n");
if(scanf("%lf %lf",&x,&y)!=2)
printf("Invalid input.\n");

//使用函数指针数组调用函数
for(i=0;i<5;++i){
printf("%10s:%6.2f\n",magTable[i],funTable[i](x,y));
}

return 0;
}


函数指针数组的应用:

double(*funTable[5])(double,double)={Add,Sub,Mul,Div,pow};,

声明并初始化了一个包含五个函数指针的数组,这些函数都是需要两个double类型参数,且返回值也都是double类型

for(i=0;i<5;++i){

printf(“%10s:%6.2f\n”,magTable[i],funTablei);

}

使用该函数指针数组,其中funTablei表达式会调用函数,这些函数的地址保存在funcTable[i]指针中

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐