【发布时间】:2019-10-06 22:07:38
【问题描述】:
# include <stdio.h>
int main()
{
char p[]={0x01,0x02,0x03,0x04};
int *q = p;
printf("%x",*q);
return 0;
}
当我运行上面的代码时,答案是 4030201。为什么?
【问题讨论】:
-
“为什么?”因为你运气不好。是否检测到印有“UB”的代码。请问为什么'你很幸运!
-
int *q = p;在 C 中是非法的。你的编译器告诉你了。剩下的只是对未定义代码的实验。
标签: c