有以下定义: union A { char st[4]; int i; long 1; }; struct B { int c; union A b; }b;

admin2019-05-17  27

问题 有以下定义:
    union A
    {  char st[4];
       int i;
       long 1;
    };
    struct B
    {  int c;
       union A b;
    }b;
    变量b所占内存字节数是(    )。

选项 A、4
B、5
C、6
D、8

答案C

解析 结构变量所占的内存字节数等于其中各个成员所占的字节数的总和,而联合变量所占的内存字节数是其中最长的成员所需要的字节数。本题中结构变量b有两个成员,一个是整型变量c,它占2字节内存,另一个是联合变量a,它自己也含有三个成员,其中占用内存空间最长的成员的变量1,占4字节内存,因此,联合变量a所占内存字节数为4,结构变量b所占总的内存字节数为变量c与变量a所占字节数之和,即2+4=6。
转载请注明原文地址:https://jikaoti.com/ti/NIf0FFFM
0

最新回复(0)