这是我们的一次考试中提出的问题。 解释以下代码的输出......
#include <stdio.h>
int main(void)
{
int i = 320;
char *ptr = (char *)&i;
printf("%d", *ptr);
return 0;
}
答案 0 :(得分:6)
您将获得构成int
的“第一个”字节的数值,其值为320.
精确输出取决于您平台的endianness:
64
0
以下是little-endian,two's-complement系统上32位int
的字节组件:
0x40
0x01
0x00
0x00
这是一个荒谬的考试问题,除非它的目的是测试你是否能够正确地提供答案“这是荒谬的;永远不要在现实生活中这样做。”