数组的地址就是第一个数组元素地址,在C\C++中规定,数组名称代表数组的第一个元素地址,也就是数组的起始地址,因此下面的语句是等价的:
iP = &iArr[0];
iP = iArr;
有了指针和指针运算,就可以灵活地使用各种方法访问数组元素,例:
- 组下标表示方法:iArr [2]
- 指针+偏移量表示法:*(iP+2)
- 数组名称+偏移量表示法:*(iArr+2)
- 指针+下标表示法:iP[2]
下面是访问数组元素的一个例子:
#include <iostream>
using namespace std;
int main()
{
int iArr[5]={13,14,15,16,16};
int *iP = &iArr[0];//等价于 iP = iArr;
cout<<"iArr[2] ="<<iArr[2]<<endl;
cout<<"iP[2] ="<<iP[2]<<endl;
cout<<"*(iP+2) ="<<*(iP+2)<<endl;
cout<<"*(iArr+2)="<<*(iArr+2)<<endl;
system("pause");
return 0;
}
运行结果:
它们的表示效果的等价的。
参《C++语言编程基础教程》-宋振会著