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