C++指针和数组:数组指针应用,函数指针

本文介绍数组指针的概念及应用,通过实例演示如何利用数组指针简化计算器程序的设计。同时,文章还展示了如何结合函数指针进一步提高程序的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数组指针的形式

      int (*pArray)[10];

      数组指针区别于指针数组,有关指针数组的知识以及应用请看: C++指针和数组:指针数组

      int (*pArray)[10];//中存放的元素为int型,pArray为指向数组的指针

2、数组指针的具体应用

      数组指针的应用主要有两方面:

      1)、指向二维数组,在函数中作为形参,具体的应用请看:二级指针和二维数组

       2)、配合函数指针一起使用,有关函数指针的知识后面会详细讲解,这里先看一个例子,让我们更加深入的认识数组指针和指针:

       一个模拟计算器的加减乘除操作,首先用switch 来控制流程:

      

double Add(const double lp,const double rp)
{
    return lp+rp;
}
double Sub(const double lp,const double rp)
{
    return lp-rp;
}
double Mul(const double lp,const double rp)
{
    return lp*rp;
}
double Div(const double lp,const double rp)
{
    //如果右操作数为0,直接退出
    if(0.0==rp)
        exit(0);
    else
        return lp/rp;}

用switch 来控制流程:

 switch(OP)
    {
    case ADD:
        result = Add(op1,op2);
        cout<<"The Result is:"<<result<<endl;
        break;

    case SUB:
        result = Sub(op1,op2);
        cout<<"The Result is:"<<result<<endl;
        break;

    case MUL:
        result = Mul(op1,op2);
        cout<<"The Result is:"<<result<<endl;
        break;

    case DIV:
        result = Div(op1,op2);
        cout<<"The Result is:"<<result<<endl;
        break;
    }


程序运行的结果如下图所示:
     

现在使用数组指针来改变程序:
           所需要的改变就是添加下面的语句,并且替换掉switch 控制流程:
         
//定义一个函数指针
    double (*pFunc[])(double,double) ={Add,Sub,Mul,Div};

//使用函数指针来调用相关的函数
    result = pFunc[OP](op1,op2);
    cout<<"The Result is:"<<result<<endl;

     程序运行的结果如下所示:



3、最后附上程序源码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值