九、用户自己建立数据类型——共用体类型

1、什么是共用体类型?

有时想用同一段内存单元存放不同类型的变量。例如把一个短整型变量、一个字符型变量和一个实型变量放在同一个地址开始的内存单元中。以上3个变量在内存中占的字节数不同,但都从同一地址(图中设地址为1000)存放,也就是使用覆盖技术,后一个数据覆盖了前面的数据。这种使几个不同的变量共享同一段内存的结构,称为“共同体”类型的结构。
定义共同体类型变量的一般形式为
union 共用体名
{
成员列表
}变量表列;

2、引用共用体变量的方式

只有先定义了共用体变量才能引用它,但应注意,不能引用共用体变量,而只能引用共用体变量中的成员。

3、共用体类型数据的特点

  1. 同一个内存段可以用来存放几种不同类型的成员,但在每一瞬间只能存放其中一个成员,而不是同时存放几个。其道理是显然的,因为在每一个瞬间,存储单元只能有唯一的内容,也就是说,在共用体变量中只能存放一个值。
  2. 可以对共用体变量初始化,但初始化表中只能有一个常量。
  3. 共用体变量中起作用的成员是最后一次被赋值的成员,在对共用体变量中的一个成员赋值后,原有变量存储单元中的值就被取代。因此在引用共用体变量时应十分注意当前存放在共用体变量中的究竟是哪个成员的值。
  4. 共用体变量的地址和它的各成员的地址都是同一地址。
  5. 不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。
  6. 允许共用体变量作函数参数。
  7. 共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。反之,结构体也可以出现在共用体类型中,数组也可以作为共用体的成员。
    什么情况下会用到共用体类型的数据呢?
    往往在数据处理中,有时需要对同一段空间安排不同的用途,这时用共用体类型比较方便,能增加程序的灵活性。在数据处理中,用同一个栏目表示不同内容的情况是不少的,如果善用利用共用体,会使程序的功能更加丰富和灵活。

猜你喜欢

转载自blog.csdn.net/lijiahao1212/article/details/129982061