欢迎光临
我们一直在努力

c语言中函数指针数组认识,转移表应用

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//函数指针数组 – 存放函数指针的数组
//int Abb(int x, int y)
//{
//    return x + y;
//}int Acc(int x, int y)
//{
//    return x – y;
//}int Add(int x, int y)
//{
//    return x * y;
//}int Aee(int x, int y)
//{
//    return x / y;
//}
//int main()
//{
//    int a = 9;
//    int b = 3;
//    int i = 0;
//    int (*parr[4])(int, int) = { Abb,Acc,Add,Aee };//都是int ()(int,int)类型的
//    for (i = 0; i < 4; i++)
//    {
//        printf("%d\\n", parr[i](a, b));
//    }
//    return 0;
//}
//转移表
void maen()
{
    printf("****************1.加法运算****************\\n");
    printf("****************2.减法运算****************\\n");
    printf("****************3.乘法运算****************\\n");
    printf("****************4.除法运算****************\\n");
    printf("****************0.退出运算****************\\n");
}
int Abb(int x, int y)
{
    return x + y;
}int Acc(int x, int y)
{
    return x – y;
}int Add(int x, int y)
{
    return x * y;
}int Aee(int x, int y)
{
    return x / y;
}
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    int (*parr[4])(int, int) = { Abb,Acc,Add,Aee };
    do
    {
        maen();
        printf("请选择:");
        scanf("%d", &c);
        if (c == 0)
        {
            printf("退出运算\\n");
        }
        else if (c > 1 && c < 5)
        {
            printf("请输入两个数字:");
            scanf("%d %d", &a, &b);
            printf("%d\\n", parr[c – 1](a, b));
        }
        else
        {
            printf("超出范围,请重新选择\\n");
        }
    } while (c);
    return 0;
}
    /*case 1:
        printf("请输入两个数字:");
        scanf("%d %d", &a, &b);
        printf("%d\\n", parr[c – 1](a, b));
        break;
    case 2:
        printf("请输入两个数字:");
        scanf("%d %d", &a, &b);
        printf("%d\\n", parr[c – 1](a, b));
        break;
    case 3:
        printf("请输入两个数字:");
        scanf("%d %d", &a, &b);
        printf("%d\\n", parr[c – 1](a, b));
        break;
    case 4:
        printf("请输入两个数字:");
        scanf("%d %d", &a, &b);
        printf("%d\\n", parr[c – 1](a, b));
        break;*/
//可以简化一下上面内容 
 

赞(0)
未经允许不得转载:171主机测评 » c语言中函数指针数组认识,转移表应用
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址