C++ 学习

union (共用体)


  共用体里可以包含多个变量类型,他们公用一块内存,也就是说,每次只能出现一个,

  example : 

      union test{

           int   a;

           double b;

      }


   共用体test 中的a, b使用同一块内存,只能调用test.a or test.b二者绝对不能同时出现;

   共用体所占内存:   共用体变量中长度最长的类型的字节数

   共用体第二次调用时,假如与第一次调用时类型不同,第二次所赋予的值会覆盖掉第一次的内容,但是,不一定是完全覆盖,比如说我第一次调用 test.b., 第二次调用test.a; b是8个字节, 而a 是四个字节,那么显然,剩余四位覆盖不到。


 

枚举类型 enum  


 C++ 所提供的另一种创建 符号常量的方式,它可以替代 const ,也可以定义新的类型。用法与结构体相似:

  enum test{ one, two, three, four, five = 5, six , seven};

  test p;

  其中 test 称为 enumeration  one, ...seven称为enumerator 在默认情况下, 第一个枚举量(enumerator)的值为0, 此后若没特殊赋值的枚举量其值是前一个的+1,如果有特殊赋值,那么此枚举量的值就是我们所赋予的值。 也就是说  我们的test 中  one = 0, tow = 1, three = 2, four = 3, five = 5, six = 6;

  在不使用强制类型转换的时候,p的值只能是 test 所定义的 enumerator中的值。 枚举量是int ,可以转换成int复制给整型变量,但是反之则不可以;

  int a = one (valid)  ;  a = 3 + six ( valid)   p = 2 (invalid) p = 1 + six(invalid)  

  注意  :  p = one + six (invalid) 因为c++ 中并没有定义枚举 操作符 + ,所以在运算过程中, 会把 one six 转换成相应的 int , 

                  如果 int 的值合法,在强制类型转换的情况下,是可以复制给 枚举变量的 如 p = (test) 3;  


  枚举值的取值范围

    C++中每个枚举值都有取之范围,  枚举上限 : 设枚举量的最大值为 max 最小值 min, 则上限就是 大于 max 的最小 2 的幂 - 1, 同理 下限 : 为 大于min的最小 2 的幂 + 1

   如   test 的枚举上限就是 7, 下限就是 -1

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值