首页 > cc++ > 结构体struct和联合体union的区别

结构体struct和联合体union的区别

结构体-struct是把若干个数据类型组合到一起,相当于形成一个结构类型,这样的结构体变量就拥有结构体所包含的所有的数据类型。
结构体所占用的内存单元是它里面包含数据类型所占内存单元的总和。

联合体-union是为了节省内存而设置的,若干个不同数据类型共用一组内存单元。
联合体所占的内存单元是它所包含的数据类型中占用内存单元最大的那个数据类型所占用的内存单元的值。

  union   test1
  {   
          long   a;   
          char   b;   
  }   
  sizeof(test1)==sizeof(long)   
    
  struct  test2
  {   
          long   a;   
          char   b;   
  }   
  sizeof(test2)==sizeof(long)+sizeof(char)

struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成员, 而struct的所有成员都存在。
对于union的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于struct的不同成员赋值是互不影响的。

  1. 还没有评论
评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks