1.一维数组与指针
大多数情况下,C++和C语言一样,也将数组名视为指针.该数组的数组名是数组内第一个元素的地址.例如整形数组 int arrayname[10].其中 arrayname=&arrayname[1].此处需要注意:将地址运算符&作用于数组名时,将返回整个数组的地址,例如&arrayname将返回一个40字节内存块的地址(假设int长4字节).
1.1使用指针访问一维数组
如上所示,使用指针访问一维数组int arrayname[10].可以通过arrayname[i]访问数组内各个元素(i为数组元素的索引).
#include<iostream>
int main()
{
using namespace std;
int arrayname[10]={1,2,3,4,5,6,7,8,9,10};
cout<<"arrayname[0]="<<*arrayname<<endl;
cout<<"arrayname[1]="<<*(arrayname+1)<<endl;
cout<<"arrayname[2]="<<*(arrayname+2)<<endl;
}
由于数组是一块连续的内存,每次arrayname加1,实际上是加上了一个与指针指向的类型(此处为int)的长度(以字节为单位,此处为4字节)相等的值.使用指针加法和数组下标索引是完全等效的.*(arrayname)中的*代表去指针取值.假如在这里看着有些障碍的同学,暂且记住这样的写法吧,反复看看也许就恍然大悟了.hhh