请问这段代码的输出值为什么是 2 00 00 00
int a[4] = { 1,2,3,4 };
int* p = (int*)((int)a + 1);
printf("%x", *p);
你这不报段错误?32位环境吗
*p打印的就是值了,16进制的2也是2,所以最终结果为2
你是想看地址打印的话是printf("%x",p)
一开始p的地址为数组a的开头,然后以int类型对p+1,此时指向的就是数组中的第二个元素,对应的值为2
有帮助望采纳
是int *p
为什么好多人的*总和int粘在一起