若有以下说明和定义语句,则变量aa所占内存的字节数是什么?

18.若有以下说明和定义语句:union uti {int n;double g;char ch[9];}
struct srt{float xy;union uti uv;}aa;则变量aa所占内存的字节数是( )
A) 9
B) 8
C) 13
D) 17
为什么?

海绵宝宝撒
浏览 616回答 3
3回答

冉冉说

经过VC6.0和VS2010实测,答案是24 。联合中有一个double类型,所以应该是8字节对齐。float占4字节,联合中最长是ch占9字节,会跳过float后的4字节,从第8字节开始,到下一个8字节的头一字节为止。而后的7字节也要被对齐占掉。共3*8 = 24.若不考虑内存对齐,答案如上。

当年话下

应该是十三个字节, 联合体的话 定义的时候系统分给它的内存是占联合体各变量中最大的一个 而结构体定义的时候系统分给它的内存是全部的变量 所以答案应该是9+4=13个。

慕妹3242003

Cunion util中char ch[9];最大,占用9个字节srt是float和union util的结构,占用4+9=13个字节
打开App,查看更多内容
随时随地看视频慕课网APP