在C++中,数组与指针密切相关,几乎可以互相使用。数组名可以认为是常量指针,它指向存放数组第一个元素的内存地址。指针可以完成任何涉及数组下标的操作。
实际上,数组下标表示法在编译期间将转化为指针表示法,所以用指针方式来书写数组下标表达式可以节省编译时间。
例如,对于下面的数组定义:
char name[10]="Smith";
name等于&name[0]。如果再定义一个字符指针:
char *pname=name;
则:name[i]、*(pname+i)和(name+i)具有相同的值,都是数组第i+1个元素的值。而且&name[i]、name+i和pname+i也具有相同的值,都是数组第i+1个元素所在的位置。