帮忙解决一下C语言

若有下面的说明和定义,则sizeof(structaa)的值是structaa{intr1;doubler2;floatr3;Unionuu{charu1[5];long... 若有下面的说明和定义,则sizeof( struct aa)的值是
struct aa
{int r1;double r2;float r3;
Union uu{char u1[5];long u2[2];}ua;
}mya;
展开
 我来答
luofl1992
2010-09-04 · TA获得超过710个赞
知道小有建树答主
回答量:561
采纳率:0%
帮助的人:570万
展开全部
struct aa
{int r1; /*2个字节,VC中4个*/
double r2; /*8个字节*/
float r3; /*4个字节*/
Union uu{ /*联合结构,大小按其中所有元素的最大内存者*/
char u1[5]; /*1个字节*/
long u2[2]; /*4个字节*/
}ua; /*这个联合的结构占用4个字节*/
}mya;
最后加起来,就是 2(4) + 8 + 4 + 4 = 18或者20
chenxiao_heng
2010-09-04 · TA获得超过435个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:324万
展开全部
我用VC帮你调试了一下

#include <stdio.h>
struct aa // 4 + 8 + 4 +16 = 32
{
int r1; // 4
double r2; // 8
float r3; // 4
union uu{ //取下面最大的 16
char u1[5]; // 1*5 = 5
long u2[2]; // 2*8 = 16
}ua;
}mya;
int main()
{
printf("int=%d",sizeof(int));
printf("double=%d\n", sizeof(double));
printf("float=%d\n", sizeof(float));
printf("long=%d\n",sizeof(long));
printf("aa=%d\n",sizeof(aa));
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m289950578
2010-09-04 · TA获得超过391个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:169万
展开全部
2+8+4+max(1*5,4*2,)=22
一一对应,能看明白吧?
结构体取和,共用体取最大值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琼头浪子
2010-09-04 · TA获得超过601个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:214万
展开全部
32
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式