`
fireDragonpzy
  • 浏览: 444444 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

c++基础知识(五)C/C++中枚举类型(enum)

阅读更多
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 

  举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!

enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。

  这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义!

enum box{pencil,pen};  
  
enum box box2;//或者简写成box box2;

  再有一种就是在声明的时候同时定义。

enum {pencil,pen}box,box2; //在声明的同时进行定义!

  枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作!

enum box{pencil=1,pen=2};

  但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如

enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作!

  前面说了那么多,下面给出一个完整的例子大家可以通过以下的代码的学习进行更完整的学习!

#include <iostream>  
using namespace std;  
  
void main(void)  
{  
    enum egg {a,b,c};  
    enum egg test; //在这里你可以简写成egg test;  
  
    test = c; //对枚举变量test进行赋予元素操作,这里之所以叫赋元素操作不叫赋值操作就是为了让大家明白枚举变量是不能直接赋予算数值的,例如(test=1;)这样的操作都是不被编译器所接受的,正确的方式是先进行强制类型转换例如(test = (enum egg) 0;)!  
  
    if (test==c)  
    {  
        cout <<"枚举变量判断:test枚举对应的枚举元素是c" << endl;  
    }  
  
    if (test==2)  
    {  
        cout <<"枚举变量判断:test枚举元素的值是2" << endl;  
    }  
  
    cout << a << "|" << b << "|" << test <<endl;  
  
    test = (enum egg) 0; //强制类型转换  
    cout << "枚举变量test值改变为:" << test <<endl;  
    cin.get();  
}

  看到这里要最后说一个问题,就是枚举变量中的枚举元素(或者叫枚举常量)在特殊情况下是会被自动提升为算术类型的!

#include <iostream>  
using namespace std;  
  
void main(void)  
{  
    enum test {a,b};  
    int c=1+b; //自动提升为算术类型  
    cout << c <<endl;  
    cin.get();  
}


摘自:http://pcedu.pconline.com.cn/empolder/gj/c/0502/562347.html
分享到:
评论

相关推荐

    C++中枚举类型(enum)

    C++中枚举类型(enum)

    C++枚举类型enum与enum class的使用

    在C++中,枚举类型分为不限定作用域(enum)和限定作用域(enum class)。 2. enum与enum class的区别? (为什么需要限定作用域?) 答:枚举作用域是指枚举类型成员名字的作用域,起自其声明之处,终止枚举定义...

    c++中bool enum 引用等學習資料

    STL vector 容器介绍 C++中布尔类型 深入探讨C++中的引用 C/C++中枚举类型(enum)

    Java枚举类型Enum的用法

    NULL 博文链接:https://rensanning.iteye.com/blog/2013734

    vs code C/C++语法高亮配置文件(C/C++ Themes插件)

    vscode配色插件的c/c++语法高亮配置文件,主题插件为C/C++ Themes。 可以对诸如const、enum、typedef别名、结构体引用等语法高亮进行设置,语言本身的关键字自然不用说了,比one dark pro等热门的插件颜色丰富的多。...

    C++枚举类型实例

    C++枚举类型的简单实例,设置了enum result{win,lose,tie,cancle} 实现了这四种情况的顺序输出。

    C语言enum枚举类型解析共13页.pdf.zip

    C语言enum枚举类型解析共13页.pdf.zip

    Java中的枚举类型Enum示例源代码

    Java中的枚举类型Enum示例源代码,详见http://blog.csdn.net/snarlfuture/article/details/18996037

    Java SE程序 Enum枚举类

    Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类...

    C语言中的enum(枚举)用法

    本文主要介绍C语言中的enum(枚举)用法,感性趣的朋友可以参考下。

    C# C++ enum 枚举 例子.rar

    enum day {Sun,Mon,Tue,Wed,Thu,Fri,Sat}; 默认情况下,枚举符的值从0开始,其后值总是前面一个+1。 即Sun=0,Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat=6 也可以自己定义数值,其后值总是前面一个+1 例如: enum day {Sun=...

    C语言程序设计-枚举类型.pptx

    C语言设置了枚举类型。 枚举类型定义的一般形式为: enum 枚举名 { 枚举值表 }; 在枚举值表中应罗列出所有可用值,这些值也称为枚举元素。 例如:enum weekday { sun,mon,tue,wed,thu,fri,sat }; 5-2 枚举类型变量的...

    EnumHelper枚举操作类

    /// 范例:Enum1枚举有两个成员A=0,B=1,则传入"A"或"0"获取 Enum1.A 枚举类型&lt;/param&gt; public static T GetInstance(string member) { return CommFun.ConvertTo(Enum.Parse(typeof(T), member, true)); } #...

    C++开发面试知识点-C、C++、C++11、C++14

    自己秋招根据面经和基础知识学习总结的知识点,主要内容包括但不限于:volatile关键字、sizeof & strlen、const的作用、enum、inline、delete[] 与 delete、多态的作用、C++与Python的区别、深拷贝与浅拷贝、extern ...

    C++ 基础知识总结_终稿_1241

    C++ 基础知识总结目录C++ 面试基础知识总结 1位域 5C 实现 C++ 类 7friend 友元类和友元函数 8:: 范围解析运算符 9enum 枚举类型

    C#与C调用C++Dll,非托管,含struct调用及enum公用,完整项目,可直接编译或运行

    C#与C调用C++,非托管,含struct调用及enum公用,完整项目,可直接编译或运行。 项目将所有工程的输出统一到Debug。 vs2015+Framework4.6,注意工程的配置。 所有东西自写,只是出于样例参考的作用,所以代码规范...

    java中enum枚举的详细用法

    java中enum枚举的详细用法。 0.0

    讲解C++中的枚举类型以及声明新类型的方法

    C++枚举类型 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。声明枚举类型用enum开头。例如: enum weekday{...

    枚举语句enum用法详解

    enum.docx ,详细介绍了enum的用法,枚举用法在c#中比较常见,希望会有帮助哦

Global site tag (gtag.js) - Google Analytics