|
|
一个数组包含若干个元素,每个数组元素都在内存中占用存储单元,每个存储单元都有相应的地址,且每个数组元素占用同样大小的存储空间。所谓数组的指针就是指数组的起始地址,数组元素的指针就是数组元素的地址。因此,可通过指向数组元素的指针变量来引用数组元素。
|
|
|
例如,下面程序为通过指针变量来输入、输出数组的全部元素:
|
|
|
|
相对于通过下标来引用数组元素而言,通过指针来引用数组元素的效率更高。在上述程序中,p++成立是因为数组元素占用的空间相同,每次进行自增或自减运算都跳过数组元素所占用的字节数。另外,要灵活掌握p[i],a[i],*(a+i),*(p+i)之间的等价关系。
|
|
|
指向一维数组的指针不难理解,指向多维数组的指针就需要考生仔细分析和深刻理解了。下面是二维数组a及指向一维数组的指针变量:
|
|
|
|
我们看到a,a[0],&a[0][0]的值都相等,但含义不同。a+1不等价于a[0]+1,这是因为a相当于排长,而a[0]相当于班长,因而其内在含义不同,每次增1跳过的数组元素的个数不同。a+1需要跳过4个数组元素,而a[0]+1仅需要跳过1个数组元素。
|
|
|
|
|
|
|
|
|
|
|
|