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

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

可以分为三个层次

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. BZOJ 3294: [Cqoi2011]放棋子

    3294: [Cqoi2011]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 628  Solved: 238[Submit][Status] ...

  2. python实现一个图灵机器人

    这标题就是个噱头...其实用的别人的接口,就是这货. 下面是代码: # -*- coding: utf-8 -*- import urllib,urllib2 import sys import js ...

  3. MySQL数据库的优化(上)单机MySQL数据库的优化

    MySQL数据库的优化(上)单机MySQL数据库的优化 2011-03-08 08:49 抚琴煮酒 51CTO 字号:T | T 公司网站访问量越来越大,导致MySQL的压力越来越大,让我们自然想到的 ...

  4. Java GC回收机制

    优秀Java程序员必须了解的GC工作原理 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只 ...

  5. mac 10.9.4下配置apache

    mac 10.9.x已经自带了apache,可按如下步骤开启: 1.启动 sudo apachectl start 启动后,访问 http://localhost/ 应该能看到"It wor ...

  6. .NET CLR 运行原理

    原文: Drill Into .NET Framework Internals to See How the CLR Creates Runtime Objects 文章讨论了: SystemDoma ...

  7. Android开发自学笔记(Android Studio1.3.1)—1.环境搭建

    一.引言 .Google推出的 毫无疑问,这个是它的最大优势,Android Stuido是Google推出,专门为Android"量身订做"的,是Google大力支持的一款基于I ...

  8. manifest资源提取工具

    因业务需要,写了个manifest资源提取工具,该机制是将html文件作为入口文件进行资源抓取.原理是先简单扫html token,然后直接遍历每个tag token是否属于需要的资源(css,js, ...

  9. 国内网站常用的一些 CDN 公共库加速服务

    CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用.与将JS库存放在服务器单机上相比,CDN公共库更加稳定.高速.一 般的CDN公共库都会包含全球所有最流行的开源JavaScri ...

  10. sFlow

    http://www.sflow.org/developers/specifications.php http://www.inmon.com/technology/index.php sFlow s ...