欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言联合体union

程序员文章站 2022-07-15 08:50:41
...

今天总算是有点收获,把以前忽略的联合体搞明白了,简单点说联合体union就是:穿衣大法

怎么个穿衣大法呢?一个人(联合体)有许多衣服(成员),不管他穿多少衣服,都是这个人。

union也是一样,由于联合体变量的各成员共享同一地址的内存单元(相当于一个人),所以对其成员赋值的那一时刻(相当于又穿上了一件衣服),存放和起作用的是最后一次存入的值(只能看见穿在最外面的衣服啦)。如:

union UData data;
data.i=10;data.ch='A';data.f='12.5';

则data.f才是有效的成员的值。

对联合体变量的某个成员赋值时,也改变了其他成员的值(相当于这个人多穿衣服感觉不冷了),因为他们共享同一地址。

union UData data;
data.i=10;data.ch='A';

则data.i将变为65(A的ASCII)

由于联合体变量所有成员共享同一存储空间,因此联合体变量与其他成员地址相同(相当于:那个穿灰色衣服的帅哥是Alihuhu)

当然,这只是我自己为了记忆和理解写的,不是很恰当~~~还希望不要误导了大家。

相关标签: C union