共用体,又称为联合体,它与结构体相同。可以存放多种不同的数据类型,不过它们的区别是,结构体一旦定义,编译器就会给里面定义的数据类型分配固定的内存空间(无论有没有使用)

而共用体,则是只占用1块内存空间。共用体内的只能赋值给其中1个。如果又给另一个数据赋值,上次赋的值将会被重置。

共用体的定义格式:
[共用体类型] [共用体名]{}

union example{
    int a;
    double b;
};

使用共用体 和 结构体类似,也可以通过声明变量来进行访问和赋值。

#include <stdio.h>
union M2
{
    int age;
    float sum;
};
void main(){
    union M2 m;
    m.age = 19;

    //sum一旦赋值,age的值将丢失。
    m.sum = 1.72;

    printf("年龄为:%d ",m.age);
    printf(" 身高:%.2f",m.sum);
}

运行输出结果:
年龄为:1071393014(已丢失数据) 身高:1 .72