单选题
👁️ 浏览量:

试题题干

若定义了( )
union
{ char a[10];
     short b[4][5];
     long c[5];
}u;
则执行printf(″%d\n″,sizeof(u));语句的输出结果是() 

A

10

B

20

C

40

D

70

参考答案

正确答案:

试题解析

sizeof()是测试数据类型所占用的内存字节数。union就是多个成员共用一块内存,在编译时会选取成员中长度最长的来声明。其中char a[10]; //占用1*10=10字节;short b[4][5]; //占用2*(4*5)=40字节;long c[5]; //占用4*5=20字节,即长度最长的为short b[4][5],故输出的结果是40。