【发布时间】:2017-09-10 23:20:15
【问题描述】:
union u
{
int a;
float b;
char c[10];
};
int main()
{
union u abc;
printf("\n%d",sizeof(abc));
}
输出:12 我希望输出是 10.sizeof(char) 是 1。所以对于 10,我希望它是 10。有人可以解释一下为什么我们得到 12。
【问题讨论】:
-
有填充。
-
标题:'sizeof char array',(char c[10])。代码:'sizeof(abc)',(联合)。为什么要声称一件事,然后证明另一件事?
-
你问的是数组的大小(标题)还是联合的大小(代码)?
-
打印“联合内的sizeof char数组”,
printf("%zu\n",sizeof(abc.c));