美文网首页
c++共同体和枚举 - 草稿

c++共同体和枚举 - 草稿

作者: arkliu | 来源:发表于2022-11-26 09:04 被阅读0次

共同体

共同体能够存储不同的数据类型, 但是在同一时间只能存储其中一种类型。

  • 共同体占用的内存大小是其内部最大的成员占用内存大小
  • 全部的成员使用同一块内存
  • 共同体中的值为最后被赋值的那个成员的值
  • 可以在定义共同体的时候创建共同体变量,也可以嵌入结构体中。
#include <iostream>
using namespace std;

union data {
    int a;
    double b;
    char c[21];
};

int main() {
    union data d;
    cout << "sizeof(data) = "<<sizeof(d)<<endl;

    cout << "d.a的地址 = "<<(void *)&d.a<<endl;
    cout << "d.b的地址 = "<<(void *)&d.b<<endl;
    cout << "d.c的地址 = "<<(void *)&d.c<<endl;
    return 0;   
}
image.png

枚举

  • 用枚举创建的变量取值只能在枚举量范围内。
  • 枚举的作用域与变量的作用域相同
  • 可以显式的设置枚举量的值(必须是整数)
    enum colors{red=0, green=1 ,blue=2, other=3};
  • 也可以显式的指定某些枚举量的值(枚举量的值可以重复)
    enum colors{red, green=10 ,blue, other}; // red为0 green=10 blue=11 other=12
  • 可以将整数强制转换成枚举量, 语法:枚举类型(整数)
int main() {
    enum colors{red=0, green=1 ,blue=2, other=3};
    cout << "red:"<<red<<"  green:"<<green<<"  blue:"<<blue<<"  other:"<<other <<endl;
    colors col = other;
// colors col2 = colors(3); 将整数强制转换成枚举量
    switch (col)
    {
        case red: cout << "红色" <<endl; break;
        case green: cout << "红色" <<endl; break;
        case blue: cout << "红色" <<endl; break;
        default: cout << "未知" <<endl;
    }
    return 0;   
}
image.png

相关文章

  • 【Swift 3 && C++11】<第一

    Swift 枚举和 C++枚举大不相同. 枚举的功能都被大大扩增, 其中 Swift 的枚举功能最为强大 —— 可...

  • Swift学习笔记-枚举

    定义枚举类型 定义的语法和C/C++很像,只不过前面多了case语句 创建枚举实例 第一次创建枚举实例的时候必须指...

  • java中的枚举类型解析

    背景 学过c/c++的同学都知道,c/c++里面的枚举变量在编译的时候,都会用相应的值替换掉枚举常量。java里面...

  • 第8章:枚举

      在Swift中,枚举与C、C++、Objective-C中的枚举相比有巨大差异,可以认为枚举是由类蜕化而成的。...

  • C++学习笔记(二)

    1 数据类型 枚举类型枚举类型枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干...

  • C语言中的枚举(enum)类型

    C语言中的枚举(enum)类型 枚举变量是C语言中的一种数据结构,在C++和Java等衍生语言(用词好像不太恰当)...

  • 第十章 属性

    枚举也具有属性和方法,这在c++中是不可想象的。 例如: enum Device { case iPad, iPh...

  • 枚举类型

    新学到的枚举类型 枚举类型是c/c++都有的一个类型以前从未注意到的类型如:

  • 记录我学到Swift 语法中的协议(protocol)

    协议 枚举(enum) 枚举的定义:Swift中的枚举是为一组有限种可能性的相关值提供的通用类型(在C/C++/C...

  • modern c++(4)-强类型枚举

    弱类型枚举(weakly typed enum) 一开始,由于C++的枚举类型来源于C,所以出于设计简单的目的,枚...

网友评论

      本文标题:c++共同体和枚举 - 草稿

      本文链接:https://www.haomeiwen.com/subject/cgzotdtx.html