找到输出?

-13 c pointers

这是我们的一次考试中提出的问题.解释以下代码的输出......

#include <stdio.h>

int main(void)
{
   int i = 320;
   char *ptr = (char *)&i;
   printf("%d", *ptr);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

Lig*_*ica 6

您将获得构成intwith值320 的"first"字节的数值.

精确输出取决于平台的字节顺序:

  • 小端输出: 64
  • 大端输出: 0
  • 中端输出:天知道

以下是intlittle-endian,二进制补码系统上32位的字节组件:

  • 字节#0: 0x40
  • 字节#1: 0x01
  • 字节#2: 0x00
  • 字节#3: 0x00

这是一个荒谬的考试问题,除非它的目的是测试你是否能正确地提供答案"这是荒谬的;永远不要在现实生活中这样做".