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;
程序运行的结果如下所示: