其实枚举挺简单的,只不过以前没好好学,所以不知道这个东西,恩,现在梳理一下

整体而言,首先枚举是一个数据类型,这个数据类型和结构体有点像

可以分为三个层次

1.枚举数据类型定义

  第一种:enum 枚举名 {

    枚举元素 1,

    枚举元素 2,

    ......,

    ......

 }

eg:

  enum week{Sun,Mon,Tue,Wed,Thu,Fri,Sat};

2.枚举变量的定义

  主要有两种方式

    方式一:根据1中定义的数据类型定义枚举变量

    enum week Workday,Holiday;

    方式二:在定义枚举数据类型的同时定义变量,这种方式有两种方法

        方法一:不省略枚举名

          enum week{Sun,Mon,Tue,Wed,Thu,Fri,Sat}Workday,Holiday;

        方法二:省略枚举名

          enum {Sun,Sun,Mon,Tue,Wed,Thu,Fri,Sat}Workday,Hoiday;

          注:方法二不能再另外定义变量

 

3.枚举变量的引用

    常规的引用是:

    Workday=Mon;

    Hoiday=Sun;

    但是另外要注意几点:

      1.定义数据类型中的枚举元素是常量!!禁止对他进行赋值等操作,如 :Mon=1;Sun=Mon;都不

      2.枚举元素在定义时就已经由系统自动给了一个整数值,默认第一个枚举元素的值为0,其后的每个枚举元素顺序加1,

        如果认为赋值,则已赋值的按照人为赋值,没有人为赋值的在前一个元素的基础上加1

      例如:enum week{Sun=4,Mon=2,Tue,Wed,Thu,Fri,Sat}

      则sun=4 mon=2 Tue=3,Wed=3,Thu=4,Fri=5,Sat=6;

      3.枚举常量和枚举变量在输出时都是一个整数,因此格式控制说明符应该为%d

      4.枚举值可以进行比较,比较时,以他们的整数值比较

恩,OK,就这些了,希望又爱又恨的东西全部变成爱

又爱又恨系列之枚举enum的更多相关文章

  1. MySQL字段之集合(set)枚举(enum)

    MySQL字段之集合(set)枚举(enum) (2008-12-23 13:51:23) 标签:it  分类:MySQL 集合 SET mysql> create table jihe(f1 ...

  2. 枚举 enum

    typedef enum : NSUInteger { <#MyEnumValueA#>, <#MyEnumValueB#>, <#MyEnumValueC#>, ...

  3. 谈谈Nancy中让人又爱又恨的Diagnostics【上篇】

    前言 在Nancy中有个十分不错的功能-Diagnostics,可以说这个功能让人又爱又恨. 或许我们都做过下面这样的一些尝试: 记录某一个功能用到的相关技术信息 记录下网站的访问记录 全局配置某些框 ...

  4. 枚举enum学习小记

    参考文献: [1]C++程序设计语言(特别版), 裘宗燕译, 机械工业出版社 [2]C++ Primer (3rd Ed.), S.B. Lippman and J. Lajoie, 人民邮电出版社 ...

  5. Java 枚举(enum) 详解7种常见的用法

    Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...

  6. Python 枚举 enum

    Python 枚举 enum enum 标准模块在 3.4 版本才可以使用,3.3 以下版本需要独立安装:https://pypi.python.org/pypi/enum34#downloads,官 ...

  7. 【转】结构struct 联合Union和枚举Enum的细节讨论

    结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换 ...

  8. 枚举Enum和常量0之间的恩怨

    1,任何为0的常量表达式都能隐式的转换成枚举Enum. 对于这一点,在程序中没少吃苦头.特别是对于函数重载的情况,往往让人一头雾水. 看看下面的代码(摘自MSDN),你能猜到输出吗? public e ...

  9. C++和Java中枚举enum的用法

    在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的 ...

随机推荐

  1. android edittext 去边框 去下划线

    EditText的background属性设置为@null就搞定了:android:background="@null"style属性倒是可加可不加 附原文:@SlumberMac ...

  2. PAT 1016. 部分A+B (15)

    正整数A的"DA(为1位整数)部分"定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA = 6,则A的"6部分"PA是66,因为A中有 ...

  3. ubuntu 12.04下zmap安装

    zmap介绍 https://zmap.io/ ----------------华丽的分割线---------------- zmap 1.03 的安装 Step1: sudo apt-get ins ...

  4. 添加Distributor失败

    上周做了一个case,客户无法为SQL Server instance配置remote distributor. 下面分享一下排查问题的过程,希望对您排查类似的问题所有帮助. 客户的环境中的SQL S ...

  5. [资料]自动化e2e测试 -- WebDriverJS,Jasmine和Protractor

    1. http://sentsin.com/web/658.html 2. http://www.tuicool.com/articles/AnE3Mb 3. http://www.doc88.com ...

  6. &11,散列表

    #1,是什么? 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个 ...

  7. weblogic下部署应用时slf4j与logbak冲突的解决办法

    今天在weblogic上部署一个使用logback的应用时,报错如下: java.lang.IllegalArgumentException: Invalid 'logbackConfigLocati ...

  8. c++ 指针(二)

    函数指针 可以使用算法的地址传递给方法,传递之前要先完成以下工作 1.获取函数的地址 2.声明一个函数指针 3.使用函数指针来调用函数 1.获取函数的地址,只要使用函数名就可以 Fun2(Fun1); ...

  9. C# StopWatch的使用

    在做项目的时候,需要输出数据库操作的耗时,自己写了个方法.老大看到后,奇怪我为什么不用现成的.才知道有StopWatch这个类. 属性       名称 说明 Elapsed 获取当前实例测量得出的总 ...

  10. GridView的 OnRowDataBound 事件用法

    <asp:GridView ID="RptUsers" runat="server" AutoGenerateColumns="False&qu ...