A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hityu 中级黑马   /  2014-11-21 08:34  /  2183 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

结构体和公用体的区别和使用情况?

7 个回复

倒序浏览
结构体中成员个体独自占有内存,但是共用体,也就是联合,他所占内存取决于他成员的最大内存。比如:你定义性别,非男即女,不可能都有,所以可以共用体,
回复 使用道具 举报
itDave 发表于 2014-11-21 11:12
结构体中成员个体独自占有内存,但是共用体,也就是联合,他所占内存取决于他成员的最大内存。比如:你定义 ...

你的答案对我帮助很大,谢谢你啦
回复 使用道具 举报
结构体里面的每一个元素都占有一定的内存空间,你可以随时获取结构体中的任何成员的当前值。而共用体占用其元素中最长的变量的那个类型的内存空间。其赋值是覆盖式的,在一定时间只能获取当前唯一的值,也就是说你要先确定当前状态下是谁的值然后在获取。比如:
union data {int a; long b; char c; }d,e,f;

……

d.a=1;
d.b=10000000000;
d.c='s';

那么只有d.c是有效的,d.a和d.b的值你是获取不到的!。希望对你有帮助!
回复 使用道具 举报
     共用体:用同一段内存,存放不同类型的变量 。 在数据处理时,对同一段空间安排不同的用处时,用union  长度是最长的成员的长度;结构体所占的内存,为所有元素之和
回复 使用道具 举报
hityu 发表于 2014-11-22 08:30
你的答案对我帮助很大,谢谢你啦

互相帮助吧,都不容易吧。你加油啊
回复 使用道具 举报
joykerl 中级黑马 2014-11-22 21:47:29
7#
学习一下,大家回复很热情
回复 使用道具 举报
hityu 中级黑马 2014-11-23 11:50:49
8#
itDave 发表于 2014-11-22 10:54
互相帮助吧,都不容易吧。你加油啊

恩恩  一起加油哈
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马