若有下面的说明和定义: struct test { int m1; char m2; float m3; union uu {char u1[5]; int u2[2];}ua; }myaa; 则sizeof

admin2010-05-22  29

问题 若有下面的说明和定义:    struct  test    {  int m1;  char m2;  float m3;       union uu  {char u1[5];  int u2[2];}ua;    }myaa;    则sizeof(stmct test)的值是(  )。

选项 A、12
B、16
C、14
D、9

答案1

解析 结构体变量所占的存储空间是各个分量所占空间的总和。共用体变量中的所有成员占有同一个存储空间,其字节数与成员中占字节数最多的那个成员相等。char u1[5]是有5个元素的字符数组占5个字节,int u2[2]是有2个元素的整型数组占2*2=4个字节,共用体占5个字节的存储空间。int占2个字节,char占1个字节,float占4个字节,因此结构体所占的存储空间为2+1+4+5=12个字节。
转载请注明原文地址:https://kaotiyun.com/show/CVWp777K
0

最新回复(0)