gpt4 book ai didi

c - union 在c中初始化

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

<分区>

#include<stdio.h>
int main()
{
union emp;
union emp{
int age;
char name[2];
};
union emp e1={512};
printf("%d,%d,%d",e1.age,e1.name[0],e1.name[1]);
return 0;
}

我在这里尝试创建一个 union 并初始化它的第一个成员,即“int age”。据我所知,ANSI C 编译器支持这一点。我的问题是为什么我得到像“512,0,2”这样的输出。如果我用 513、514 和 768 替换 512,我会得到以下输入。"513,1,2","514,2,2","768,0,3",现在我可以看到 e1.name[0] 正在存储(数字)%256,而 e1.name[1] 正在存储(数字)/256。如果能解释为什么会发生这种情况以及如何发生,我们将不胜感激。谢谢大家。

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