黑马程序员技术交流社区

标题: 结构体和公用体的区别和使用情况? [打印本页]

作者: hityu    时间: 2014-11-21 08:34
标题: 结构体和公用体的区别和使用情况?
结构体和公用体的区别和使用情况?

作者: itDave    时间: 2014-11-21 11:12
结构体中成员个体独自占有内存,但是共用体,也就是联合,他所占内存取决于他成员的最大内存。比如:你定义性别,非男即女,不可能都有,所以可以共用体,
作者: hityu    时间: 2014-11-22 08:30
itDave 发表于 2014-11-21 11:12
结构体中成员个体独自占有内存,但是共用体,也就是联合,他所占内存取决于他成员的最大内存。比如:你定义 ...

你的答案对我帮助很大,谢谢你啦
作者: mahei521    时间: 2014-11-22 09:20
结构体里面的每一个元素都占有一定的内存空间,你可以随时获取结构体中的任何成员的当前值。而共用体占用其元素中最长的变量的那个类型的内存空间。其赋值是覆盖式的,在一定时间只能获取当前唯一的值,也就是说你要先确定当前状态下是谁的值然后在获取。比如:
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的值你是获取不到的!。希望对你有帮助!
作者: 冰点    时间: 2014-11-22 10:10
     共用体:用同一段内存,存放不同类型的变量 。 在数据处理时,对同一段空间安排不同的用处时,用union  长度是最长的成员的长度;结构体所占的内存,为所有元素之和
作者: itDave    时间: 2014-11-22 10:54
hityu 发表于 2014-11-22 08:30
你的答案对我帮助很大,谢谢你啦

互相帮助吧,都不容易吧。你加油啊
作者: joykerl    时间: 2014-11-22 21:47
学习一下,大家回复很热情
作者: hityu    时间: 2014-11-23 11:50
itDave 发表于 2014-11-22 10:54
互相帮助吧,都不容易吧。你加油啊

恩恩  一起加油哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2