指针与数组
2 指针与数组
一个变量有一个地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。所谓数组的指针就是指数组的起始地址(首地址),数组元素的指针则是数组元素的地址。
指向数组的指针
一个数组占用一段连续的内存单元,数组名即为这段连续内存单元的首地址,一个数组元素的地址就是它所占用的几个连续内存单元的首地址。
2 指针与数组
定义一个指向数组元素的指针变量的方法:
int a[10];
int *p;
p=&a[0];
下面两个语句等价:p=&a[0]; p=a;
通过指针引用数组元素如果指针变量p指向数组中的一个元素,则p+1指向同一数组中的下一个元素。
2 指针与数组
如果p的初始值为&a[0],则:
p+i和a+i就是a[i]的地址,或者说它们指向a数组的第i个元素。
*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即a[i]。如*(p+5)就是a[5]。
下标法,即用a[i]形式访问数组元素。
指针法,即采用*(p+i)或*(a+i)的形式,用间接访问的方法来访问数组元素,其中a是数组名,p是指向数组的指针变量,其值为数组的