这是我们的一次分类考试中给出的问题。 解释以下代码的输出...
#include <stdio.h>
int main(void)
{
int i = 320;
char *ptr = (char *)&i;
printf("%d", *ptr);
return 0;
}
最佳答案
您将获得组成 int
的“第一个”字节的数值,值为 320。
精确的输出取决于 endianness您的平台:
- 小尾数输出:
64
- 大端输出:
0
- 中端输出:天知道
以下是小端字节序上 32 位 int
的八位字节组件,two's-complement系统:
- 八位字节#0:
0x40
- 八位字节#1:
0x01
- 八位字节#2:
0x00
- 八位字节#3:
0x00
(一个八位字节是一个 8 位字节。您的平台可能将八位字节作为 char
,但是更奇特的平台,具有更大的 CHAR_BIT
值,确实存在。)
关于c - 找到 的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31896798/