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

来源:互联网 发布:战舰世界腓特烈数据 编辑:程序博客网 时间:2024/06/05 06:23

为了在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;}
0 0
原创粉丝点击