#include <stdio.h>
int main()
{
float a = 12.5;
printf("%d\n", a);
printf("%d\n", *(int *)&a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
另外,你如何解释表达式*(int *)&a?
它接受float的地址,将其转换为整数指针,然后将其解引用为整数.完全错了.
这里至少有两件事是错的:
因此输出到第二个printf(如果它没有发生崩溃,因为它是未定义的行为,按照第一点)可能是一些奇怪的,巨大的数字.