1)节省内存,有两个很长的数据结构,不会同时使用,比如一个表示老师,一个表示学生,如果要统计教师和学生的情况用结构体的话就有点浪费了!用结构体的话,只占用最长的那个数据结构所占用的空间,就足够了!
2)做某些转换用 union{char a[8];double x;}; x=20.8; cout< 3)假设你有一个应用需要大量临时变量,这些变量类型不同,而且随时会更换而你的堆栈空间有限不能同时分配那么多变量,做个共用体让这些变量占用同一空间,那么就可以节省堆栈空间,由于这些只是临时变量,用完就丢,和寄存器差不多不用维护,所以不会有冲突!=""> 关于这个问题,在C语言中,共同体(union)是一种特殊的数据类型,它允许不同的变量共用同一块内存空间。共同体中的成员共享同一块内存,每次只能存储其中一个成员的值。共同体的大小由其最大成员的大小决定。 共同体的成员可以是不同的数据类型,但它们共用同一块内存空间。因此,共同体的成员之间只能存储一个有效的值。当修改共同体的一个成员时,其他成员的值将被覆盖。 共同体主要用于在不同的数据类型之间进行类型转换,以节省内存空间。它也可以用于处理某些特殊的数据结构,例如位域。 总结起来,C语言的共同体共用了同一块内存空间,用于存储不同数据类型的成员,并且每次只能存储其中一个成员的值。 在 C 语言中,允许几种不同类型的变量存放到同一段内存单元中,也就是使用覆盖技术,几个变量互 相覆盖。这种几个不同的变量共同占用一段内存的结构,被称为共用体类型结构,简称共用体。 一般定义 形式为:union 共用体名{数据类型 成员名 1;数据类型 成员名 2;......数据类型 成员名 n;}变量名表列;只有先定义了共用体变量,才能在后续的程序中引用它。不能直接引用共用体变量,而只能引用共用体变量中的成员。 1、共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。 2、union语句必须用于定义共用体,类似于定义结构。union语句定义了多个成员的新数据类型。 共用体一般指联合体,作用如下: 1、节省内存 有两个很长的数据结构,不会同时使用,用结构体的话,只占用最长的那个数据结构所占用的空间,就足够了。 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate 在C语言中,定义一个结构的一般形式为: 成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:“类型说明符 成员名;”。成员名的命名应符合标识符的书写规定。例如: 在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num,整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。 应注意在括号后的分号是必不可少的。 然后,当结构定义完成后,即创建了一种数据类型,可以像int、float等内置类型一样使用,以上面定义的stu结构体来和int类型对比着看。 int a;//定义一个int类型的变量a stu a; //定义一个stu类型的变量a int *p; //定义一个int类型的指针p stu *p; //定义一个stu类型的指针p int a[10];//定义一个int类型的数组a,它有10个元素,每个元素是int类型 stu a[10];//定义一个stu类型的数组a,它有10个元素,每个元素是stu类型。