无法理解在Little Endian机器中在C中进行类型转换后产生的输出

时间:2019-01-26 13:19:36

标签: c pointers casting

下面是C程序,输出是201。我不知道这怎么可能。请解释一下。

#include <stdio.h>
  int main() {
    int number = 288;
    char * ptr;
    ptr = (char * ) & number;
    printf("%x", * ptr);
    ptr++;
    printf("%x", * ptr);
    return 0;
  }

这是小端机器的情况。这个问题是在针对geeksforgeeks的MCQ竞赛中提出的。但是他们没有提供任何解释。

1 个答案:

答案 0 :(得分:2)

201完全合理(在小端系统上):

变量number以以下两个字节开头(在Little-endian系统上):0x20、0x01。