我们把指向数组的指针叫做数组指针,后面还会学到指针数组,这两个是不一样的,根据中学语文偏正词组的知识可以知道,前者是指针,后者是数组。
数组的指针其实就是数组在内存的起始地址。
先看一个例子。
int a[6],i;
那么a[i]和*(a+i)是一样的。
再看一个例子。
int a[6],*p;
p=a;//p=&a[0];
我们知道数组名其实就是数组的起始地址,所以a和p都指向a[0],但要注意的是,a和p并不完全一样,a是数组名,是不可更改的,p是指针变量,是可以改变的。
p+i和a+i都是a[i]的地址,那么*a和*p就是a[0],*(a+i)和*(p+i)就是a[i]。
指向数组的指针变量也可以看成数组名。
所以p[i]就是a[i]。