问题
单项选择题
下列程序的输出结果是( )。 #include "stdio.h" main() { struct st { int y,x,z;}; union {long i;int j; char k;} un; printf("%d,%d\n",sizeo(struct st),sizeof(un)); }
A.6,2
B.6,4
C.8,4
D.8,6
答案
参考答案:B
解析: 本题考查的是结构和数组元素所占的字节数。题目中定义的结构st因为包含x、y、z这3个元素,所以size(struct st)=2+2+2=6;而联合体所占的字节数,由于最后存入的元素会把前面存入的元素覆盖掉,所以联合体所占的字节数就是占据最多存储单元的元素所占的字节数,sizeof(un)=sizeof(long)=4。