gpt4 book ai didi

c - 内存布局 - C union

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:42 25 4
gpt4 key购买 nike

我有一个 union 类型的数组,包含三个整数(每个 4 个字节)、一个 float (4 个字节)、一个 double (8 个字节)和一个字符(1 个字节)。

如果我将 0x31313131 分配给三个整数元素中的每一个,然后打印 union 的字符,我将得到数字 1。为什么?

我不明白输出我知道 3 0x31313131 的位是001100010011000100110001001100010011000100110001001100010011000100110001001100010011000100110001

最佳答案

因为“1”==0x31。您将其打印为字符,而不是整数。

因为它是一个 union ,所以所有的 int 和 char 共享相同的内存位置(在这种情况下,float 和 double 无关紧要)。因此,将 0x31313131 分配给 int 确实会影响 char 值——这没什么好混淆的。

关于c - 内存布局 - C union ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9834395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com