C++指針和數組:數組指針應用,函數指針

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、最後附上程序源碼


發佈了27 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章