main(){ long a[4] = {1, 2, 3, 4}; long *p1=(long *)(&a+1); // long *p1=(&a+1);//整个数组地址的下一个long数组的首地址,即存储整个数组a的最后一个字节的下一个字节内存的地址 // long *p1=(&a[0]+1);//数组第1个元素地址的下一个long的元素首地址,即数组第2个元素的首地址 // long *p1=(long*)(&a[0]+1);//同上 long *p2=(long *)((long)a+1); printf("%lx\n", p1[-1]); printf("%lx\n", *p2); }
(&a+1)和(&a[0]+1)中的1不同,前者的是整个数组的长度,后者是数组元素数据类型的长度
标签:p2,p1,区别,元素,long,地址,数组 From: https://www.cnblogs.com/xuweihui/p/17351615.html