C语言:函数指针数组和计算器(加减乘除)的实现

目录

一.概念

二.函数数组的用途:转移表

例子:计算器

法一:用switch来编写

代码

运行结果

对法一的改进(利用函数指针)

代码

法一的缺点

法二(利用函数指针数组)

代码

运行结果


一.概念

数组是一个存放相同类型数据的存储空间,那我们已经学习了指针数组,比如︰

int *arr[10];
//数组每个元素是int *

那要把函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组如何定义呢?,看下图:

哪一个才是正确写法呢?

答案是:parr1。parr1先和[]结合,说明parr1是数组,数组的内容是什么呢﹖是int (*)()类型的函数指针。

 

二.函数数组的用途:转移表

例子:计算器

法一:用switch来编写

代码

#include<stdio.h>
void mean()
{
    printf("*********************\n");
    printf("***1.add    2.sub****\n");
    printf("***3.mul    4.div****\n");
    printf("*******0.exit********\n");
    printf("*********************\n");
}
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;
}
int main()
{
    int input=0;
    int x=0,y=0;
    do
    {
        mean();
        printf("请选择:>");
        scanf("%d",&input);

        switch(input)//这里的input就对应menu函数里面的选项
        {
            case 1:
                printf("请输入两个操作数:>");
                scanf("%d %d",&am
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳862

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值