C语言初学者关于共用体的问题?

2025-03-14 17:08:59
推荐回答(1个)
回答1:

在不同的平台上int类型的长度是不同的。 答案是就int类型为2字节,long为4字节而言的。在这种情况下,s共分配4字节,这4字节的内容是0x000x380x000x39,所以以16进制输出b是380039,以字符形式输出第1字节c[0]是9。

而在你的平台上int是4字节,long也是4字节。因此,s共分配8字节,这8字节的内容是0x000x000x000x380x000x000x000x39。所以,以16进制输出b,只输出低4字节39,而以字符形式输出第1字节c[0]依然是9。