📌  相关文章
📜  国际空间研究组织 | ISRO CS 2016 |问题 22

📅  最后修改于: 2022-05-13 01:58:02.675000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2016 |问题 22

下面的程序会输出什么?假设您在 little-endian 处理器中运行该程序。

#include
  
int main() {
    short a = 320;
    char * ptr;
    ptr = (char * ) & a;
    printf("%d", * ptr);
    return 0;
}

(一) 1
(乙) 320
(C) 64
(D)编译错误答案: (C)
解释:大端字节顺序:数据的最高有效字节放在地址最低的字节。其余数据按顺序放置在内存中接下来的三个字节中。

Little Endian Byte Order:数据的最低有效字节放在地址最低的字节。其余数据按顺序放置在内存中接下来的三个字节中。

a= 320,a 的 2 字节表示:

但是由于我们在这里使用的是小端格式,所以它实际上会存储在内存中,如:

ptr 是一个字符指针,在解除引用时将输出一个字节,即第一个字节:(01000000) 2等于 64。
所以,正确的选项是(C)。

这个问题的测验