中易网

C语言里面的联合体和结构体有什么区别,分别是什么含义?感觉都是一样的,都是类的不同特性

答案:3  悬赏:80  
解决时间 2021-03-14 00:50
C语言里面的联合体和结构体有什么区别,分别是什么含义?感觉都是一样的,都是类的不同特性
最佳答案
联合体与结构体是很容易混淆的概念。粗略一看,两者无论声明、定义还是定义对象的方式都很相似。然而这两个东西的概念和作用实际千差万别。
首先,联合体的各个成员共用内存,并应该同时只能有一个成员得到这块内存的使用权(即对内存的读写),而结构体各个成员各自拥有内存,各自使用互不干涉。所以,某种意义上来说,联合体比结构体节约内存。
举个例子:
typedef struct
{
int i;
int j;
}A;
typedef union
{
int i;
double j;
}U;
sizeof(A)的值是8,sizeof(U)的值也是8(不是12)。
为什么sizeof(U)不是12呢?因为union中各成员共用内存,i和j的内存是同一块。而且整体内存大小以最大内存的成员的划分。即U的内存大小是double的大小,为8了。sizeof(A)大小为8,因为struct中i和j各自得到了一块内存,每人4个字节,加起来就是8了。
了解了联合体共用内存的概念,也就是明白了为何每次只能对其一个成员赋值了,因为如果对另一个赋值,会覆盖了上一个成员的值。
全部回答
我暂时保留我的看法!
完全不一样。
例如:书包;可以放置书本、笔盒、记事本等物。
联合体,仅能放入一样东西的包(限制),其尺寸,是可放物品中,最大一件的体积。
结构体,是能放入所有物品的包,所以其尺寸,可同时容纳多样物品。
联合体,同时间只能有一个成员在内。或是说,可以用不同型态,去看同一组数据。
结构体,可以包含多个成员在一起,成员都能个别操作。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英雄联盟经常说什么肉装之类的 谁能帮我解释
学校清洁工人数与学生人数怎样配比
项羽史改的原因
xposed安装器没有root权限怎么办
宁波口腔医院怎么样 牙齿前突矫正
如图,在平行四边形ABCD中,EF过对角线的交点
华硕x32u笔记本超级卡怎么办。
儿子21岁了,谈恋爱了,作为母亲该怎么办
美的遥控落地电风扇用遥控器能打开不能关啥原
digestive tract是什么意思
身份证省份编号30开头是为台湾预留的吗
天津锐力克工程机械这个地址在什么地方,我要
ATP医院有得开吗?
23*2*4+25*4*2+27*1*8+25*8*1的简便计算法
怎么和刚交的女朋友相处?
推荐资讯
玩过街霸的进来瞧瞧~这个是什么意思?
红椿小学这个地址在什么地方,我要处理点事
圣弗莱地址在哪,我要去那里办事
梦幻69龙宫鞋子、腰带、头
宋氏祖居的介绍
灵狐少年主要内容急呀!
梦幻西游T6多少级满经验
青岛“老银匠”
农历二零一二年五月二十九上午九点五十四分出
唐肃宗的儿子是谁
给塑业有限公司起个什么名字好?
桃园ol只能3开,求4开5开方法
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?