c++中的结构体和联合体有什么区别

听说:结构是所有的数据类型的内存的总和!联合是申明的类型里面的最大的类型的内存结构体懂了一点,但是联合体的内存好是不懂,请高手赐教,越详细越好,谢谢!... 听说: 结构是所有的数据类型的内存的总和!
联合是申明的类型里面的最大的类型的内存
结构体懂了一点,但是联合体的内存好是不懂,请高手赐教,越详细越好,谢谢!
展开
 我来答
樱雪瑶4W
2015-08-13 · 知道合伙人软件行家
樱雪瑶4W
知道合伙人软件行家
采纳数:450 获赞数:1930

向TA提问 私信TA
展开全部
1. 区别
结构体是多个不同类型变量的组合,其占用的内存大小是所有变量大小的总和
联合体是多个不同类型变量的抽取,其占用内存的大小是联合体中最大的那个变量的大小

2. 解释
结构体中的多个变量同时存在,你可以给其中的每个变量分别赋值。任何一个变量被赋值不影响其他变量。你在需要使用时每个变量都可以同时被取出使用。
联合体中的多个变量同时只有一个存在。你只能给其中的一个变量赋值。你在给联合体的任何一个变量赋值的时候就覆盖了其他的变量,也就是说只有你刚赋值的这个变量存在,其他都被覆盖掉了

3. 用途
结构体和联合体都用于需要把一组变量联合考虑的场合。结构体变量清晰,便于使用,尤其是要表述一个对象的多个属性时方便有效。但是要占用比较大的内存
联合体同时只有一个变量存在,占用资源少,有助于提高编程效率,但是使用不如结构体这么方便和清晰。

请参考 http://zhidao.baidu.com/link?url=ypbVYByx_M2PNWkCi0zer2GMT3Jc7xP5KXz2U1dUwsGIJTSpxwIJsgdOcJtZ-QyZjkxGOe9pFqEkffrtMH-_4a
湛蓝水晶
2007-12-18 · 知道合伙人数码行家
湛蓝水晶
知道合伙人数码行家
采纳数:1388 获赞数:9352
毕业北京科技大学数学与应用数学专业,学士学位,IT行业6年从业经验。现任公司项目经理。

向TA提问 私信TA
展开全部
结构体是多个数据的集合,可以保存多个数据
而联合union只保存一个数据,但是可以按照不同类型来读取。
比如你的联合里面有一个int和一个float,你第一次写进int,然后第二次写进float,那么int就不可用了(或者说读出来已经不是你存的int值了),因为这个union所在的内存区域值已经是第二次写进的float了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaigangvvv
2007-12-18 · TA获得超过348个赞
知道小有建树答主
回答量:1190
采纳率:0%
帮助的人:587万
展开全部
struct 占的字节数是每个变量占字节数的和,而union 占内部变量中最大的字节数,也就是所有成员共用同一内存地址.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xinyiran1205
2007-12-18 · TA获得超过1444个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:1029万
展开全部
联合有float,int ,char等,因float内存大,故为float型的内存大小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式