···
int a[] = {1, 2, 3, 4, 5};
int *p;
p = a;
p = &a[0]; //语句三和语句二·等价
···
因为数组名即数组第一个元素的地址,所以语句三语句四等价,都是将数组a的首地址存放到指针变量p中。
当指针指向数组元素的时候,我们可以对指针变量进行加减运算,这样做的意义相当于指向指针所在位置向前或向后第n个元素。比如p+1表示指向p指针指向元素的下一个元素;p-1则表示指向上一个元素。
对比标准的下标访问数组数组元素,这种使用指针进行间接访问的方法叫做指针法
指针变量是一个左值而数组名字是一个地址常量不是左值
原文:https://www.cnblogs.com/xiao--liang/p/10330070.html