union共同体

定义:

union 共用体名{
成员列表
};

与结构体不同的是,共用体的所有成员占用同一段内存,修改一个成员会影响其余成员。但是结构体的各个成员会占不同的内存。
结构体占用的内存大于等于所有成员占用的内存总和(成员之间可能存在缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉,覆盖时,一般从低位开始覆盖,也就是char 没办法覆盖整个int类型,因为char只占一个字节,而int占用四个字节。成功覆盖当且仅当成员所占字节数相同,否则只会覆盖相应字节上的值。

创建变量:

union data{
    int n;
    char ch;
    double f;
};
union data a,b,c;

 

posted @ 2018-08-24 14:40  achived  阅读(441)  评论(0编辑  收藏  举报