试题题干
若定义了( )
union
{ char a[10];
short b[4][5];
long c[5];
}u;
则执行printf(″%d\n″,sizeof(u));语句的输出结果是()
参考答案
正确答案:
试题解析
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。