type
status
date
slug
summary
tags
category
icon
password
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。
1、定义共同体
定义共同体类似与定义结构体类似,我们需要使用
union
关键字:在这个共同体中写了三种变量类型,这表示这个共同体可以作为
int
、float
或者字符串
使用。2、空间占用
与结构体不同,由于共同体一次只能表示一种类型,所以我们不必计算他的内存情况,只需要找到其中占用内存最大的类型,这便是共同体的大小。
以上面代码为例,Data共同体占用的空间为char str[20]所占用的空间20字节。
代码展示占用空间:
上述代码输出结果为:
占用空间:20
3、共同体成员访问
同样的我们可以使用
.
成员访问运算符来访问共同体中的某个成员,例如:输出结果:
i = 1819043144 f = 1143139122437582505939828736.000000 str = Hello world
我们可以发现,
i
和f
的值与我们预期的值不一样,这是因为union共同体
一次只能保存一个数据类型且使用的空间有限,我们在最后赋值为字符串后,原有保存int
和float
的空间被覆盖,所以输出的值并不是预期值。- 作者:Rainvice
- 链接:https://rainvice.com/article/e5c45ff1-0414-4dbb-92ff-30d946ce5f53
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。