(1)指针和数组的关系
对于一个一维数组,例如int a[10],那么a代表的是数组的首地址,它和&a[0]是等价的。
定义指针int *p,p=a 等价于p=&a[0];
如果 p 指向a[0],那么 p 就是 a[0] 中的元素,p i 是数组元素 a[i] 的地址,(p i) 就是数组元素 a[i] 的内容。
(2)指针与数组的转换关系
a[i]==(a+i)==(i+a)==i[a];
(3)案例:
#include<stdio.h>
int main()
{
int doses[]={1,2,3,1000};
printf("%i\n",3[doses]);
return 0;
}
此处3[doses]虽然定义,但是程序仍然可以执行,原因是
doses3[3]==(doses+3)==(3+doses)==3[doses]
C语言里面有很多值得深入学习的地方,一直深爱C语言。此例虽然偏见,但对理解指针与数组之间的转换关系很有帮助。