【c语言共同体】一道题目,不会做,求解答。高分悬赏。谢谢

2024-12-03 06:51:47
推荐回答(4个)
回答1:

int a[2]占8个字节.39 00 00 00    38 00 00 00

回答2:

看这个写法上 应该指的16位机
所以 a[2] b c[4]占的都是4个字节的空间
就像你说的
存放的数据都是16进制的 0x39 0x38
但由于int占两个字节 所以在这个四字节空间中 存放的是
0x39 0x00 0x38 0x00(按照常见的EL存储)
这样 输出b的时候就是
380039
输出c[0]的时候 就是x039的对应字符 也就是字符
9

回答3:

这个要考虑到大、小端序(与电脑、编译器等等有关)和字节数。
共用体里数据的排序可能是:00111001 00111000
也可能是:10011100 00011100(顺序反过来)
公用体的字节数 = 其中一个拥有最大字节数 数据的字节数
其他小于该字节数的数据 = 截短后最大字节数的数据。

回答4:

是的,但是printf输出要转换