A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 756129186 中级黑马   /  2015-10-28 00:02  /  842 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

结构体与共用体的区别

2 个回复

倒序浏览
一、结构体(struct)
          1. 定义:结构体是由一系列具有相同数据类型或不同数据类型的数据构成的数据集合。
           2.例子:
               struct student
              {
                     int num;
                    char name[20];
              };
               注意不要忽略最后的分号
           3.定义结构体类型变量的方法:
               strcut  student student1, student2;
           4.大小:
             (1) 空结构体的大小为1byte.
             (2)结构体的大小要是最严格(也就是占据内存最多的)的那个变量的大小的整数倍。如:
              struct student
              {
                     int num;
                    char name;
              };
             占据的内存空间为8个byte。
            struct student
              {
                     int num;
                    char name;
                    char mark;
              };
             大小也是8个Byte。按内存对齐方式说,应该是12个字节,所以这里有些不明白。
    二、共用体(union)
          1.定义:union维护足够的空间来放置多个数据成员中的“一种”,而不是为每一个数据成员配置 空 间,在union中所有的数据成员公用一个空间,同一时间只能存储其中的一个数据成员,所有的成员具有相同的起始地址。举例:
           union data
          {
                 int i;
                 char ch;
                  float f;
           }
            大小为4个字节。
           2. 引用方式:不能引用共用体的变量,只能引用变量中的成员。如a.i, a.ch.
回复 使用道具 举报
解释的很清楚
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马