分类: 数据结构 |
union(联合)与struct(结构)有一些相似之处。但两者有本质上的不同。在struct中各成员有各自的内存空间, 一个struct变量的总长度是各成员长度之和。而在union中,各成员共享一段内存空间, 一个union变量的长度等于各成员中最长的长度。应该说明的是, 这里所谓的共享不是指把多个成员同时装入一个union变量内, 而是指该union变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。如前面介绍的“单位”变量, 如定义为一个可装入“班级”或“教研室”的union后,就允许赋予整型值(班级)或字符串(教研室)。要么赋予整型值,要么赋予字符串,不能把两者同时赋予它。union类型的定义和变量的说明一个union类型必须经过定义之后, 才能把变量说明为该union类型。
一、联合变量的声明