结构体 枚举

结构体类型 --- 用来描述复杂数据的一种数据类型

构造类型 --- 用户自定义类型

结构体

怎么描述一个数据类型?

语法: 

   struct 结构体类型名

   {

           成员列表;

   };

(1)struct 关键字:表示在构造一个结构体的类型

(2)结构体名:用来描述结构体这个类型的名称

(3)成员列表:表示要描述的复杂数据中用到的具体的成员变量

         定义的方式,与之前变量方式相同

         多个成员变量之间,用分号隔开

(4)最后有一个分号表示结束

例:

struct student

{

    int sno;

    char name;

    float score;

};  //表示定义出一个数据类型

 注意:

1、结构体类型使用过程

   a.先定义出类型

   b.定义变量

2、定义变量

   struct 结构体名 变量名;

   -> 指向结构体成员 运算符 
   
   结构体指针->成员名 
   
   结构体变量名.成员名    

结构体初始化:struct 

初始化:

    看每个成员变量,具体是什么数据类型

    根据各个成员变量自身数据类型,进行初始化

    初始化顺序按照定义顺序依次初始化

结构体变量的引用:就结构体数据引用时,一般用引用到具体的数据

.  使用形式:

->   指向结构体成员运算符

结构体指针 -> 成员名

结构体变量名.成员名

结构体类型的大小:
内存对齐          
结构体对齐规则
结构体的对齐:
结构体的对齐规则: //内存地址的对齐
1.在32位的平台上,默认都是按4字节对齐的。 
2.对于成员变量,
   各自在自己的自然边界上对齐。
   char  -- 1字节 
   short -- 2字节 
   int   -- 4字节 
3.如果 成员变量中有比4字节大。      
  此时 整个结构体 按照4字节对齐。 //32位的平台 
4.如果 成员变量中没有有比4字节大。  
  此时 整个结构体 按照最大的那个成员对齐。   
  //32位的平台   
  //如果有超过4字节 ,按照4字节对齐
  //如果没有超过4字节的,则按成员变量中最大对齐 
 ----------------------------------------------
  //64位的平台
  //如果超过4字节的,按超过的最大的成员变量对齐 
  //如果没有超过4字节的,则按成员变量中最大对齐
-----------------------------------------------

union 

共用体
   union 
   
语法:
  union 共用体名
  {
     成员变量;
  };
   
   
eg:
  union demo
  {
     char a;
     short b;
     int c;
  };
  
  共用体:
       共用了一块内存空间 
       公用了最大成员的空间 
       
  注意:
  1.共用体初始化时,只能给一个值,默认时给到第一个成员的。
  2.共用体变量中的值,取决与最后一次给到的值,还要看能影响几个字节。
  
  对比 结构体
  1.结构体中各个成员 拥有自己独立空间
  2.共用体中,成员共用一块空间
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值