• C++入门学习5-共用体,枚举类型,宏定义


    共用体

    共用体也称为联合体,其特点就是用一段连续的内存存储多个不同数据类型的数据,在写法上与结构体相似,但是在同一时刻,共用体中只有一个值是有效的,其大小由共用体中最大的数据类型决定,如果对共用体中的某个值做赋值操作,那么共用体中的其他值也会随之改变,所以,只有最后一次赋值是有效正确的
    共用体的一般形式

    union myUnion
    {
          int i;
          char b;
          double c;
    }u;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果对某一个成员进行赋值,其他成员也会随之改变,因为他们的值的每一个二进制位都被新值覆盖

    1.共用体的地址和它的各个成员的地址一致
    2.不能在定义时初始化,不能用共用体变量名作为函数参数
    3.不能对共用体变量名赋值,不能引用变量名获得值

    枚举类型

    枚举类型定义

    enum 枚举类型名 {标识符列表};
    
    • 1
    enum weekday {sunday,monday,tuesday,wednesday....};
    
    • 1

    枚举类型会自动填充整型常数,如:

    enum weekday {sunday=0,monday=1,tuesday=2,wednesday=3....};
    
    • 1

    如果在定义时人为填充了一部分,那么后面的标识符会根据最后一个数字累加:

    enum weekday {sunday=0,monday=10,tuesday=11,wednesday=12....};
    
    • 1

    weekday就是新定义的枚举类型名
    可以用weekday定义变量如:

    [enum] weekday myworkday;
    
    • 1

    用枚举类型定义的变量,赋值只能赋予括号内的值(标识符)


    枚举类型一旦定义,那么其中的标识符就可当做整型常数使用,如:

    #include
    using namespace std;
    enum weekday {sunday,monday,tuesday,wednesday};
    int main()
    {
        cout<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    宏定义

    不带参宏定义

    #definde pi 3.1415926
    
    • 1
    #define HHH printf("a\n");
    
    • 1

    可以宏定义一个常数,表达式,格式字符串等
    宏定义嵌套

    #define pi 3.1415926
    #define x pi*pi
    
    • 1
    • 2

    终止宏定义

    #undef pi
    
    • 1

    带参数的宏定义

    #define MUL(x,y) ((x)*(y))
    
    • 1

    注意:1.参数之间,需要加上括号,整体也需要加上括号,是为了保护低优先级的运算符
    2.宏名和带参数的括号之间不能加空格,否则将空格以后的字符都作为替代字符串的一部分!


    【样例1】用宏定义操作for循环输出666

    #include
    using namespace std;
    #define For(n) int i;for(int i=1;i<=n;i++)cout<<"666"<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    【样例2】宏定义for循环

    #include
    using namespace std;
    #define _for(i,a,b) for(i=a;i<=b;i++)
    int main()
    {
        int i;
        _for(i,1,5)
        cout<<"777"<
  • 相关阅读:
    Java安全之Velocity模版注入
    Spring - InstantiationAwareBeanPostProcessor 扩展接口
    paypal订阅流程及api请求
    “CarrotSportsMethods“ app Tech Support(URL)
    创建型设计模式之抽象工厂模式
    2022年CISP考试题库下载
    【面试经典150 | 链表】两数相加
    Ant Eclipse插件使用
    vue基于web的化妆品美妆商城电子商务python flask django
    算法第六节
  • 原文地址:https://blog.csdn.net/qq_52508038/article/details/127865208