C语言的结构体和共同体的区别是什么?

 我来答
百文e见
推荐于2018-09-22 · TA获得超过626个赞
知道小有建树答主
回答量:417
采纳率:50%
帮助的人:141万
展开全部
结构体(structure)是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型,而且每个成员的数据类型可以相同也可以不相同。共同体(union)将几种不同的变量储存在同一内存单元中,也就是使用覆盖技术,几个变量互相覆盖,这种几个不同的变量共同占用一段内存的结构,可见二者最大的区别就是所占用的内存,结构体(structure)所占用的内存是分量内存之和,共同体(union)所占用的内存是等于最大的分量的内存。

具体来说,结构体(structure)与共同体(union)主要有以下区别:
1.结构体(structure)与共同体(union)都是由多个不同的数据类型成员组成, 但在任何同一时刻, 共同体(union)中只存放了一个被选中的成员, 而结构体(structure)的所有成员都存在。在结构体(structure)中,各成员都占有自己的内存空间,它们是同时存在的。一个结构体(structure)变量的总长度等于所有成员长度之和。在共同体(union)中,所有成员不能同时占用它的内存空间,它们不能同时存在。共同体(union)变量的长度等于最长的成员的长度。
2. 对于共同体(union)的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构体(structure)的不同成员赋值是互不影响的。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
手机用户76802
2013-10-31 · TA获得超过141个赞
知道答主
回答量:116
采纳率:100%
帮助的人:111万
展开全部
结构体元素与元素各自有各自的空间,而共同体各元素的空间是相同的,整体的空间大小由占最大空间的元素决定。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑马程序员
2016-12-03 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部
结构体(structure)与共同体(union)主要有以下区别:
1.结构体(structure)与共同体(union)都是由多个不同的数据类型成员组成, 但在任何同一时刻, 共同体(union)中只存放了一个被选中的成员, 而结构体(structure)的所有成员都存在。在结构体(structure)中,各成员都占有自己的内存空间,它们是同时存在的。一个结构体(structure)变量的总长度等于所有成员长度之和。在共同体(union)中,所有成员不能同时占用它的内存空间,它们不能同时存在。共同体(union)变量的长度等于最长的成员的长度
2. 对于共同体(union)的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构体(structure)的不同成员赋值是互不影响的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式