您的位置:知蚁博客 » C/C++程序设计 » C/C++中struct与union的区别

C/C++中struct与union的区别

作者: 发布时间:2011-05-19 分类:C/C++程序设计 标签: 6,408人浏览

  C/C++的数据类型包括基本数据类型和非基本数据类型,基本数据类型就是整型、实型等,非基本数据类型也称为构造数据类型,包括数组类型、结构体类型和共用体类型。其中结构体类型和共用体类型分别通过关键字struct和union来声明或定义。

  所谓构造数据类型,就是通过基本类型构造出来的类型嘛,因此构造数据类型的特点就是其中包含有多个元素,想想数组就明白了。数组中可以存放多个元素,但是每个元素的类型都一样,而结构体和共用体就大不相同了,下面来看看。

  先看看结构体struct和共用体union都是怎么定义的。

struct letuknowit
{
    char c;
    int a;
    float f;
    double dbl;
};
union letuknowit
{
    char c;
    int a;
    float f;
    double dbl;
};

  我们上面分别定义了一个struct和一个union,名字都叫做letuknowit,除了关键字之外其实看不出什么区别,不过这只是表面现象,struct和union之间还是有很大差别的。

  从上面的定义可以看出,struct和union都由多个不同的数据成员组成,这些成员可以是基本数据类型也可以是构造数据类型,也就是意味着struct和union的成员也可以是struct和union,这个我们以后再说,这里全部用基本数据类型。

  struct和union之间的差别在于,struct中的所有数据成员是同时存在的,而union中的成员在同一时刻只能选择一个。这就好比去吃饭,餐桌就是一个struct(结构体),摆在桌子上的每一道菜是这个struct的成员,这些成员(菜)是同时存在的;而酒杯就是一个union(共用体),它的成员就是各种酒,你可以每次装不同的酒,但同一时间里面只能装一种酒(不考虑掺着喝哈)。
原创文章请注明转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/81

相关文章

24访客评论 ,博主回复14

  1. 来了不客气,沙发坐下。

    敖东05-19 22:54 回复
    • 沙发质量还可以吧,呵呵

      知蚁05-20 22:36 回复
  2. 我就喜欢这样的文章哈

    bb霜05-19 23:27 回复
    • 喜欢就好,多谢支持

      知蚁05-20 22:36 回复
  3. 总结的很到位

    SEO我要推05-20 00:39 回复
    • 多谢夸奖,这评论我喜欢,呵呵

      知蚁05-20 22:35 回复
  4. 好文章啊 学习了

    七七05-20 10:30 回复
  5. 我来顶顶啊。

    微粉磨05-20 11:31 回复
    • 有几天没见到你了,呵呵

      知蚁05-20 22:33 回复
  6. 总结的不错,学习了

  7. 时隔好几天,您老终于更新了,不容易啊。

    卢松松05-20 17:28 回复
  8. 不错·~

  9. 都是编程的,我都是一窍不通,这是共同点……

    学夫子05-20 22:04 回复
    • 学学嘛,数学与编程结合,无敌了

      知蚁05-20 22:29 回复
  10. 来看咯

    暖宫孕子05-21 08:56 回复
  11. 过来学习一下技术

    湖南seo05-21 09:22 回复
    • 欢迎常来交流学习

      知蚁05-21 19:17 回复
  12. 博主是大学生么?

  13. 来看看你啊,表示只会c

    爱挖客05-21 11:31 回复
    • 终于有个能看懂的了,呵呵

      知蚁05-21 19:15 回复
  14. 太深奥看不懂啊

    涉县05-21 13:10 回复
    • 微博客中有关于球赛的,可以去那看看嘛

      知蚁05-21 19:14 回复
  15. 神马的东西、。。、

    • 传说中的编程~~~

      知蚁05-21 19:14 回复
  16. 写的不错,学习了支持一下

    快播电影05-21 16:28 回复
  17. 太深奥了 还没研究这么深的学问呢

    新淘网05-21 16:43 回复
    • 球赛看不?可以去我的微博客上看看嘛

      知蚁05-21 19:15 回复
  18. 学习了 感谢分享

  19. 呵呵,好像不是很懂,

    电商圈05-21 21:12 回复
  20. 其实我也想选择这款博客主题呢,可是评论是起泡样式的,很不喜欢,不知道博主是怎么修改的…

    一苇05-21 21:50 回复
    • 直接修改的主题的代码,需要的话我把需要修改的地方整理一下告诉你,或者我直接把修改后的文件给你,你覆盖下同名文件即可。

      知蚁05-21 22:12 回复
      • 哈,能直接拿到修改好的文件最好不过了,麻烦把文件发到我邮箱吧,真是不胜感激啊!我先试着折腾一下~~

        一苇05-22 19:51 回复
        • 已经给你发邮件了

          知蚁05-22 22:00 回复
      • 谢谢了哈,我去折腾一下~~

        一苇05-22 22:28 回复
  21. 楼主辛苦了,支持一下,收藏了其中的一个!谢谢

  22. 谢谢楼主了

    匿名07-01 06:40 回复

我来说说

(必须)

(必须,保密)

你确定你已经看过文章了?
取消

无觅相关文章插件,快速提升流量