指向数组元素的指针,有个地方概念没搞清楚,请大家看看

原题是
定义p为指针变量,一个名为a的数组
①p=a++不正确
但是②p=a+1却正确
我知道a+1是元素a[1]的地址,但我觉得a++和a+1是一回事,所以为啥①不对呢

数组名相当于常量指针,指向数组首元素,他的值(地址)不能改变(即数组名的指向不能更改)
p=a++,意为:
p=a;//正确
a=a+1//错误,a是常量
而p=a+1意为把a中地址加一(指向a[1])赋给p。a的值没变,正确。

a++应该是返回a的地址,然后对a再加1,由于a本身为数组定义地址,a无法再加1,因此不行

a++怎么能和a+1是一回事呢
a++等价于a=a+1
你说他俩是一回事?
a++先取值后++,p=a++等价于
p=a;
a++;
如果a本身并不是个int而是个数组,那么a其实是个指针,里面存的是数组首地址,它是不可以执行++操作的