黑马程序员技术交流社区

标题: 结构体 [打印本页]

作者: 756129186    时间: 2015-10-28 00:02
标题: 结构体
结构体与共用体的区别
作者: fenxite    时间: 2015-11-3 18:58
一、结构体(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.
作者: zyios    时间: 2015-11-3 21:33
解释的很清楚




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2