问题 单项选择题

以下程序的输出结果是 #include<stdio.h> main() { union un{ int i;long k;char c;}; struct byte{int a;long b;union un c;}r; printf("%d\n",sizeof(r));}

A.10

B.13

C.7

D.8

答案

参考答案:A

解析: 本题主要考查了结构体和共用体数据的存储形式。共用体的一个特点是所有数据成员共用一段存储单元,而结构体每个数据成员都单独占据一段存储单元。共用体所占存储单元的大小由长度最长的数据成员的长度决定。题中共用体变量c占据 4个字节的长度,结构体r所占存储空间的大小为int(2个字节)+long(4个字节)+共用体c(4个字节)=10个字节,所以答案为A)。

单项选择题
单项选择题