zoukankan      html  css  js  c++  java
  • 结构体,共用体,枚举

    1.结构体

    struct inflatale
    {
        char name[20];
        float volume;
        double price;
      //std::string name;也可以将string对象作为成员的结构进行初始化。 };

    inflable guest[2] =
    {
      {"Bambi",0.5,21.00},
      {"Glorious Gloria",1.88,23.99}
    };

    2.共用体

    • 共用体同时只能存储一中类型的值,该值类型,是其成员类型。共用体的长度为其最大成员的长度。
    union one4all
    {
        int int_val;
        long long_val;
        double double_val;
    }
    关于匿名共用体的初始化
    struct widget
    {
      char brand[20];
      int type;
      union
      {
      long id_num;
      char id_char[20];
      };
    };
    widget price;
    cin >> price .id_char

    3.枚举

    enum spectrum{red, orange, green, blue, violer, indigo, ultraviolet}
    spectrum band;
    band = red + orange; //red+orange将被转换为1+0,这是合法的,结果的类型是int
    ,但是类型不能赋给spectrum类型的band。
    • 可以创建多个值相同的枚举量。
    • 其中red,orange等作为符号常量,他们对应整数值是0~7,这些常量叫做枚举量。
    • 在不进行强制类型转换时,只能将枚举量赋给枚举类型的变量。
    • 枚举量是整型,可被提升为int类型,但int类型不能自懂转换为枚举类型。
    • 对于枚举说,只用声明中指出的那些值是能用的,但是,c++通过强制类型转换,增加了可赋给枚举变量的合法值。
    enum bits{one = 1, two = 2, four = 4, eight = 8};
    bits nyflag;
    myflag = bits(6); //其中6不是枚举值,但它位于枚举定义的取值范围内。
    • 每个枚举都有取值范围,通过强制类型转换,可以将取值范围中的任何整数赋给枚举变量,即使这个值不是枚举值。
    • 枚举的取值范围:

        (1)知道枚举量的最大值,找到大于这个最大值的、最小的2的幂,将它减去1,得到的值便是取值范围的上限。例如bits的枚举量的最大值是8,它的上限就是15。

        (2)计算下限,需要知道枚举量的最小值,如果它不小于0,则取值范围的下限为0,否则,则采用与寻找上线相同的方式,在减去1之后,再加上负号。

        

  • 相关阅读:
    android 源码
    android 保护
    电池信息 显示
    RGB、HSB、HSL 互相转换算法
    网页美工
    css 设计标准
    js 封闭 小结
    格式转换工具
    网页设计规范
    瀑布流分析
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5670644.html
Copyright © 2011-2022 走看看