数组地址的一些有意思的问题
int arr={{1,5},{2,4},{3,6},{7,8},{9,0}};printf("arr:%p,&arr:%p,&arr:%p,&arr:%p\n",arr,&arr,&arr,&arr);
printf("&arr:%p,&arr:%p\n",&arr+1,&arr+1);
运行结果:
arr:0019FF08,&arr:0019FF08,&arr:0019FF08,&arr:0019FF0C
&arr:0019FF10,&arr:0019FF0C
问题在于&arr如何与&arr等价的
并且他们两个地址相同但+1后前者加8个字节,后者加4个字节
可能比较绕,希望有人回答 ? ? 疑问是啥老铁 这问题提问的。。。。。不回答就不能看问题,不看问题又怎么回答?
看图,a、a和a地址是一样的,a和a地址是一样的。int类型长度是4个字节,因此a到a,地址字节数+4,而从a到a,越过的是两个int,所以字节数+8。 sunrise085 发表于 2020-1-17 09:39
看图,a、a和a地址是一样的,a和a地址是一样的。int类型长度是4个字节,因此a到 ...
感谢老铁,回答的很详细
页:
[1]