gpt4 book ai didi

c - 为什么这个c程序的输出是这样的?

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:10 26 4
gpt4 key购买 nike

以下代码的输出结果为 512 0 2 但它应该是 512 0 0。有人可以帮忙吗!

 #include<stdio.h>
int main()
{
union a
{
int i;
char ch[2];
};
union a z = { 512 };
printf("%d %d %d\n",z.i, z.ch[0], z.ch[1]);
return 0;
}

最佳答案

你已经构建了两个字节的并集。知道你把 512d (0x0200) 分配给 union 。
第一个字节 = 0x00
第二个字节 = 0x02

整数 (int16_t) i 和您的数组 ch[2] 使用相同的内存!

关于c - 为什么这个c程序的输出是这样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043871/

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