函数指针数组的用途(转移表)
#include <stdio.h>
void menue()
{
printf("*******************\n");
printf("**1.add 2.sub**\n");
printf("**3.mul 4.div**\n");
printf("**5.xor 0.exit**\n");
}
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 xor(int a, int b)
{
return a^b;
}
int main()
{
int input = 0;
int x = 0;
int y = 0;
int (*pfArr[])(int, int) = { 0,add,sub,mul,div, xor };
do
{
menue();
printf("请选择:");
scanf("%d",&input);
if (input >= 1 && input <= 5)
{
printf("请输入两个操作数:>");
scanf("%d%d",&x,&y);
int ret = pfArr[input](x, y);
printf("%d\n",ret);
}
else if(input==0)
{
printf("退出");
}
else
{
printf("选择错误\n");
}
} while (input);
}