数组元素和指针
数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。
例如:
int a[10]; /*定义a为包含10个整型数据的数组*/
int *p; /*定义p为指向整型变量的指针*/
p=&a[0]; 把a[0]元素的地址赋给指针变量p。
数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。
例如:
int a[10]; /*定义a为包含10个整型数据的数组*/
int *p; /*定义p为指向整型变量的指针*/
p=&a[0]; 把a[0]元素的地址赋给指针变量p。
也就是说,p指向a数组的第0号元素。
C语言规定:
如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。
例:
P的初值为&a[0] :
数组名代表数组首元素的地址 a =&a[0];
p+i和a+i都是a[i]的地址。
*(p+i)和*(a+i)都是p+i和a+i所指向的数组元素,即a[i].
例如:
*(p+5), *(a+5)就是a[5].
指向数组的指针变量也可以带下标。p[i]和*(p+i)等价。
引用一个数组:
下标法:用a[i]来表示;
指针法:用*(a+i),*(p+i)表示。