数组的地址+1 和 指向数组的指针+1 区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kevindelily/article/details/68952782

&a+1,相当于加了数组的一个单位(也就是一行),即&a[5]。并不是网上流传的错误答案加sizeof大小。

int a[5]={1,2,3,4,5}
int *p=(int *)(&a+1)
printf("%d", *(p-1))

&a 和 a 都是指数组的第一个元素所在地址
&a+1,相当于加了数组的一个单位(也就是一行),即&a[5]
指针p-1相当于前移一个元素,输出为5

展开阅读全文

没有更多推荐了,返回首页