函数指针数组: 实际上是将多个函数的地址放到一个数组中,需要哪个函数用数组调用就行
函数名就可以代表函数地址
即: fun=&fun
实现一个计算器
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Add(int x, int y)
{
return x + y;
}
int Sub(int x, int y)
{
return x - y;
}
int Mul(int x, int y)
{
return x*y;
}
int Div(int x, int y)
{
return x / y;
}
typedef int(*fun)(int a, int b);
//定义fun是一个函数指针,返回值是int参数两个都是int型
int main()
{
int x = 0;
int y = 0;
int choose = 0;
printf("请选择: 1 加法 2减法 3 乘法 4 除法\n");
scanf("%d", &choose);
printf("请输入两个要操作的数\n");
scanf("%d %d", &x, &y);
//int(*fun[5])(int a, int b) = { 0, Add, Sub, Mul, Div };
fun t[5]= { 0, Add, Sub, Mul, Div };//转移表
//定义函数指针数组,并进行初始化
int result=t[choose](x, y);//函数赋值调用
printf("%d\n", result);
system("pause");
}

被折叠的 条评论
为什么被折叠?



