首页 > 编程语言 >【自用11.】C++枚举

【自用11.】C++枚举

时间:2024-08-13 18:54:51浏览次数:13  
标签:11 summer winter spring enum C++ 枚举 Season

概念

当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。 比如,你可以用一个枚举类型的变量来表示季节,因为季节只有 4 种可能的取值:春天、夏 天、秋天、冬天。

 

枚举类型的定义

enum 枚举名 {
    枚举元素 1,
    枚举元素 2,
    ……
};

//例如
enum Season{
    spring,
    summer,
    autumn,
    winter
};

枚举变量的定义 

1.先定义枚举类型,再定义枚举变量

enum Season {
    spring, 
    summer, 
    autumn, 
    winter
};
enum Season s;

2.定义枚举类型的同时定义枚举变量 

enum Season {
    spring, 
    summer, 
    autumn, 
    winter
} s;

3.省略枚举名称,直接定义枚举变量 

enum {
    spring, 
    summer, 
    autumn, 
    winter
} s;

 枚举使用的注意

1.C 语言编译器会将枚举元素(spring、summer 等)作为整型常量处理,称为枚举常量。

2.枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为 0,第二个为 1,依次顺序加 1。 

#include <stdio.h>

int main(){
    // 1.定义枚举类型
    enum Season
    {
        spring, 
        summer, 
        autumn, 
        winter
    };

    // 2.定义枚举变量
    enum Season s = winter;
    printf("%d\n", s);
    
    return 0;
}

 运行结果为:3

故spring的值为0,summer为1,autumn为2,winter为3

也可以在定义枚举类型的时候改变枚举元素的值         

#include <stdio.h>

int main() {
    // 1.定义枚举类型
    enum Season{
        spring = 1, 
        summer, 
        autumn, 
        winter
    };

    //2.定义枚举变量
    enum Season s = winter;
    printf("%d\n", s);
    
    return 0;
}

运行结果为:4 

故,没有指定值的枚举元素,其值为前一元素加 1。 

枚举变量的基本操作 

1.赋值 

#include <stdio.h>

int main() {
    // 1.定义枚举类型
    enum Season {spring, summer, autumn, winter} s;
    // 2.定义枚举变量
    s = spring; // 等价于 s = 0;
    printf("%d\n", s);
    s = winter;//等价于 s = 3;
    printf("%d\n", s);
    return 0;
}

 2.遍历枚举元素

#include <stdio.h>

int main() {
    enum Season {spring, summer, autumn, winter} s;
    // 遍历枚举元素
    for (int s = spring; s <= winter; s++) {
        printf("枚举元素:%d \n", s);
    }

    return 0;
}

 注意,在for循环中s=spring前面如果不写int,后面的s++会报错

标签:11,summer,winter,spring,enum,C++,枚举,Season
From: https://blog.csdn.net/m0_57667919/article/details/141170790

相关文章

  • 第18 章探讨 C++新标准 移动构造函数解析,强制移动
    第18章探讨C++新标准移动构造函数解析,强制移动第18章探讨C++新标准移动构造函数解析,强制移动文章目录第18章探讨C++新标准移动构造函数解析,强制移动18.2.5强制移动程序清单18.3stdmove.cpp18.2.5强制移动移动构造函数和移动赋值运算符使用右值。如果......
  • C/C++指针无关联,因为它指向已销毁的实例
    一、概述在使用Qt+OpenCV做项目的过程中,发现一个问题。指针无关联,因为它指向已销毁的实例产生这个问题的代码如下:constchar*GLSquareWindow::readFileToString(QStringresPath){QFilevertexShaderFile(resPath);if(!vertexShaderFile.open(QIODev......
  • 详解C++的四大特性(封装,继承,多态,抽象)
    C++的四大特性是面向对象编程(OOP)的核心概念,分别是封装、继承、多态和抽象。这些特性共同构成了C++作为面向对象编程语言的基础。1.封装(Encapsulation)概念:封装是将数据和操作数据的方法绑定在一起,限制对数据的直接访问。通过将数据隐藏在类内部,只暴露必要的接口(如public成......
  • CF1149C Tree Generator™
    题意\(n\)个点,\(m\)个询问。给你一棵树的括号序列,输出它的直径。有\(m\)次询问,每次询问表示交换两个括号,输出交换两个括号后的直径(保证每次操作后都为一棵树)输出共\(m+1\)行。\(3\len\le100\,000,1\leq\le100\,000\)——洛谷翻译。思路我们不难想到,一个......
  • C++面试
    1.讲一讲封装、继承、多态是什么?封装:将具体实现过程和数据封装成一个类,只能通过接口进行访问,降低耦合性,使类成为一个具有内部数据的自我隐藏能力、功能独立的软件模块。意义:保护或防止代码在无意之中被破坏,保护类中的成员,不让类中以外的程序直接访问或者修改,只能通过提供的公共接......
  • D42 2-SAT+二进制枚举 P3825 [NOI2017] 游戏
    视频链接: P3825[NOI2017]游戏-洛谷|计算机科学教育新生态(luogu.com.cn)//2-SAT+二进制枚举O(2^8*(n+m))#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=100005;inthead[N],to[N<<1],ne[N<<1],idx;......
  • C++静态函数
    由于本人C++小白,关于C++的很多基础概念都不太理解,在工作当中遇到了静态函数,在函数的使用和调用外部函数与普通函数还是非常不一样的,故这里向AI请教,简单做个记录。AI的回答内容如下:Yousaid:C++当中静态函数的优势是什么ChatGPTsaid:在C++中,静态函数(static函数)是指通过在函......
  • 【C++ STL分配器】详细介绍
    C++中的分配器(Allocator)是用于抽象和管理内存分配与释放的机制,主要用于标准模板库(STL)容器。分配器的设计允许开发者自定义内存管理策略,从而优化性能、满足特殊需求或实现特定功能(如内存池、共享内存等)。本文将详细介绍C++分配器的概念、作用、自定义分配器的实现以及......
  • /lib64/libstdc++.so.6: version GLIBCXX_3.4.20 not found
    java应用运行出现了2个错误,error1:/lib64/libstdc++.so.6:versionGLIBCXX_3.4.20notfounderror2:/lib64/libstdc++.so.6:versionCXXABI_1.3.8notfound查阅了网上的解决方法,都说要更新libstdc++.so.6,按照教程操作,一直没有成功,最后参考了好几篇文章,综合了大家的方法,成功更新......
  • c++通讯录管理系统
    1、系统需求(1)添加。添加联系人信息(主要包括姓名、年龄、号码和备注)。(2)遍历。显示出所有联系人的信息。(3)删除。删除指定的联系人信息,通过电话号码筛选。(4)修改。修改指定的联系人信息,通过电话号码查找。(5)查找。查找指定的联系人信息,通过电话号码查找。(6)清空。清空所有联系......