在 x86 系统下,输出的值为多少?

在 x86 系统下,输出的值为多少?

在 x86 系统下,输出的值为多少?
#include <stdio.h>
intmain()
{
inta[5]={1,2,3,4,5};
int*ptr1=(int*)(&a+1);
int*ptr2=(int*)((int)a+1);
printf("%x,%x",ptr1[-1],*ptr2);
return0;
}


&a+1 指向的是下一个大小为sizeof(a)的数组。
((int)a + 1) 将地址转化为整形,再进行+1,类似于char型指针+1.指向的数值与平台的大小端模式是有关系的。

猜你喜欢

转载自blog.csdn.net/u013550000/article/details/80959688