假如定义一个数组 int a[5]={1,2,3,4,5};
a就代表这个数组变量
需要记住的是 a等价于&a[0] 都是数组首个元素 a[0]的地址
而&a是指的 a整个数组的首地址,虽然二者实际值一致但是代表含义是不同的
a+1 表示的是 首个元素的地址加上一个元素的长度,一个元素的长度是一个int类型,也就是
a+size of(int)
&a+1表示的是整个数组的首地址,加上一个数组的长度,则是 &a+5*size of(int)
假设定义一个int *类型的变量
int *ptr1 = int *(&a+1)
prt[-1]就等价于*(ptr - 1)