一.什么是共用体?
在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。这种几个不同的变量共同占用一段内存的结构,在C语言中,被称作“共用体”类型结构,简称共用体。注:在某些书籍中可能称之为“联合体”,但是“共用体”更能反映该类型在内存的特点。(摘自百度百科)
二.定义共用体类型变量
eg:
union Test //Test为共用体名
{
int a; //a,b,c存储在同一段储存单元中
float b;
char c;
}m,n;
或者:
union Test //Test为共用体名
{
int a; //a,b,c存储在同一段储存单元中
float b;
char c;
};
union Test m,n;
(定义方式类似结构体。)
三.共用体类型数据的特点:
①共用体变量中只能存放一个值:同一个内存段可以用来存放几种不同类型的成员,但每一次只能存放其中一个,不能同时存放。(共用体类型所占的内存长度等于最长的成员的长度)
②可以对共用体进行初始化,但初始化表中只能有一个变量。
③共用体中起作用的成员是最后一次被赋值的成员,在对共用体中的其中一个成员的赋值后,原有变量储存单元中的值就取代。