C/C++进阶学习笔记(一) 枚举类型

为了在C/C++的学习之路中留下更深刻的印象,从现在开始,我将着手写一系列的C/C++进阶学习笔记,文章中不涉及深层次的应用,不作教科书式的详解,只写出基本的用法和介绍,以后在学习和工作过程中有用到的功能再作补充,保证介绍的简洁、实用和高效

欢迎到 我的博客 查看更详细的内容

枚举类型

介绍

有时候在开发中需要定义一系列的有规律的常量

#define Mon 1
#define Tue 2
#define Wed 3
#define Thu 4
#define Fri 5
#define Sat 6
#define Sun 7

这样的写法比较重复累赘,我们可以用枚举类型简化这一过程

enum DAY
{
    Mon = 1, Tue, Wed, Thu, Fri, Sat, Sun
};

与上述的反复#define等价,都定义了一系列的常量变量,这就是枚举类型的主要作用,默认第一个常量从0开始,可以人为赋值每一个常量的值

用法

  1. 声明和定义分开

        enum DAY
        {
            Mon = 1,Tue,Wed,Thu,Fri,Sat,Sun
        };
    
        ......
    
        enum DAY yesterday;
        enum DAY today;
    
  2. 声明和定义同时进行

    enum        //标号DAY可以省略
    {
     Sat,
     Sun = 0,
     Mon,
     Tue,
     Wed,
     Thu,
     Fri
    } today; //today的类型为枚举型enum DAY
    enum DAY { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} today; //声明同时定义

示例

环境 Windows 7 旗舰版 Visual Studio 2015

// Enum_Practice.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;

enum Week
{
    Sun = 1, Mon, Tue, Wed, Thu, Fri, Sat
};

int main()
{
    enum Week today, yesterday;     
    int temp;

    while (1) {

        cout << endl << "Enter day: " << endl;
        cin >> temp;

        today = (Week)temp;     //赋值要强制转换类型



        switch (today)
        {
        case Sun:cout << "Sunday" << endl;
            break;
        case Mon:cout << "Monday" << endl;
            break;
        case Tue:cout << "Tuesday" << endl;
            break;
        case Wed:cout << "Wendsday" << endl;
            break;
        case Thu:cout << "Thursday" << endl;
            break;
        case Fri:cout << "Friday" << endl;
            break;
        case Sat:cout << "Sataday" << endl;
            break;
        default:cout << "Error" << endl;
            break;
        };

        yesterday = (Week)(today - 1);  //赋值要进行类型强制转换

        cout << "Yesterday is ";
        switch (yesterday)
        {
        case Sun:cout << "Sunday" << endl;
            break;
        case Mon:cout << "Monday" << endl;
            break;
        case Tue:cout << "Tuesday" << endl;
            break;
        case Wed:cout << "Wendsday" << endl;
            break;
        case Thu:cout << "Thursday" << endl;
            break;
        case Fri:cout << "Friday" << endl;
            break;
        case Sat:cout << "Sataday" << endl;
            break;
        default:cout << "Error" << endl;
            break;
        };

    }

    return 0;
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值