#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int mul(int a, int b)
{
return a * b;
}
int div(int a, int b)
{
return a / b;
}
int main()
{
int x, y;
int input = 1;
int ret = 0;
int(*p[5])(int,int) = {0,add,sub,mul,div};
do
{
printf("*******************************************\n");
printf("******* 1.add 2.sub ***********\n");
printf("******* 3.mul 4.div ***********\n");
printf("******* 0.退出 ***********\n");
printf("*******************************************\n");
scanf("%d", &input);
if (input >= 1 && input <= 4)
{
printf("输入操作数:");
scanf("%d %d", &x, &y);
ret = (*p[input])(x, y);
printf("ret=%d\n", ret);
}
else if (input == 0)
{
printf("退出计算器");
}
else
{
printf("输入有误\n");
}
} while (input);
return 0;
}
1.什么是数组指针
这是数组指针的正确写法格式,数组指针就相当于给arr取了一个别名p,p存取了arr的地址
2.什么是函数指针
这里的写法可以对应数组指针,两者是十分类似的。
同样,函数数组指针就很好理解了