联合和枚举类型

       说了结构体,就不得不说联合和枚举。

       联合这个类型的设计就是为了节省内存,联合内的元素共用一段存储空间,空间大小由最大的数据元素决定。联合空间只有一个最新赋值的成员值有效。一句话总结:空间共享,后来为主。

       联合的定义跟结构一样,也有3种方式“:

      union  UNI

      {

           char ch;

           float x;

      };

     union UNI u;

     或

     typedef  union  UNI

     {

          char ch;

          float x;

     }UNI;

    UNI u;

   或

   typedef  union

   {

         char ch;

         float  x;

   }UNI;

    UNI u;

    联合变量u可以初始化,但只能初始化第一个成员,即不能对联合变量整体赋值

    

    枚举类型也是一种用户自定义类型,它允许用户定义有限个常量(注意是常量!),每个常量由用户自己的标识符来标示,这种类型更贴近处理实际问题,每个常量标识符都有确定的意义,增强代码的可读性。

     枚举类型的定义与结构体、联合一样,

     例:enum  WEEKDAY {Sun,Mon,Tue,Wed,Thu,Fri,Sat};

             enum  WEEKDAY w;

     给枚举变量赋值的一般是枚举元素,用常量表达式给枚举变量赋值时必须要强制类型转换,枚举元素是常量,不能作为左值!

            w = mon;  //枚举元素给枚举变量赋值

            w = (enum WEEKDAY)6;// 常量表达式给枚举变量赋值

           mon = (enum WEEKDAY)1;//非法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值