关于C语言的程序问题

以下程序运行的结果是( )。
#include
union data
{ int a;
char b;
float c;
}u[3];
void main()
{printf("%dn",sizeof(a));
}
A、4
B、7
C、12
D、21

麻烦懂的人帮我解释一下吧

union的sizeof, 也就是占空间大小, 按照最大成员来计算.
在union data中, 有三个元素,
a是int型, 在16位下占2字节, 其他情况下占4字节.
b是char, 占1字节.
c是float, 占4字节.
于是 一个union data占4字节.

这里的sizeof(a)是错误的, 没有这个变量. 合法的可以是
sizeof(u) 由于u是union data u[3]数组, 所以大小是12字节. 这样的话选C
如果是sizeof(union data)那么就是4, 选A了.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-02
答案A是正确的。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网