联合(union)和结构(struct)的区别

来源:互联网 发布:java 处理大批量数据 编辑:程序博客网 时间:2024/05/18 17:58

 1. 联合说明和联合变量定义
    联合也是一种新的数据类型, 它是一种特殊形式的变量。
    联合说明和联合变量定义与结构十分相似。其形式为:
     union 联合名{
          数据类型 成员名;
          数据类型 成员名;
          ...
     } 联合变量名;
    联合表示几个变量公用一个内存位置, 在不同的时间保存不同的数据类型
和不同长度的变量。

    下例表示说明一个联合a_bc:
     union a_bc{
          int i;
          char mm;
     };
    再用已说明的联合可定义联合变量。
    例如用上面说明的联合定义一个名为lgc的联合变量, 可写成:
      union a_bc lgc;
    在联合变量lgc中, 整型量i和字符mm公用同一内存位置
    当一个联合被说明时, 编译程序自动地产生一个变量, 其长度为联合中最大
的变量长度。 
2 结构和联合有下列区别:
    1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻,
联合中只存放了一个被选中的成员, 而结构的所有成员都存在。
    2. 对于联合的不同成员赋值, 将会对其它成员重写,  原来成员的值就不存
在了, 而对于结构的不同成员赋值是互不影响的。

原创粉丝点击