又爱又恨系列之枚举enum
其实枚举挺简单的,只不过以前没好好学,所以不知道这个东西,恩,现在梳理一下
整体而言,首先枚举是一个数据类型,这个数据类型和结构体有点像
可以分为三个层次
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的更多相关文章
- MySQL字段之集合(set)枚举(enum)
MySQL字段之集合(set)枚举(enum) (2008-12-23 13:51:23) 标签:it 分类:MySQL 集合 SET mysql> create table jihe(f1 ...
- 枚举 enum
typedef enum : NSUInteger { <#MyEnumValueA#>, <#MyEnumValueB#>, <#MyEnumValueC#>, ...
- 谈谈Nancy中让人又爱又恨的Diagnostics【上篇】
前言 在Nancy中有个十分不错的功能-Diagnostics,可以说这个功能让人又爱又恨. 或许我们都做过下面这样的一些尝试: 记录某一个功能用到的相关技术信息 记录下网站的访问记录 全局配置某些框 ...
- 枚举enum学习小记
参考文献: [1]C++程序设计语言(特别版), 裘宗燕译, 机械工业出版社 [2]C++ Primer (3rd Ed.), S.B. Lippman and J. Lajoie, 人民邮电出版社 ...
- Java 枚举(enum) 详解7种常见的用法
Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...
- Python 枚举 enum
Python 枚举 enum enum 标准模块在 3.4 版本才可以使用,3.3 以下版本需要独立安装:https://pypi.python.org/pypi/enum34#downloads,官 ...
- 【转】结构struct 联合Union和枚举Enum的细节讨论
结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换 ...
- 枚举Enum和常量0之间的恩怨
1,任何为0的常量表达式都能隐式的转换成枚举Enum. 对于这一点,在程序中没少吃苦头.特别是对于函数重载的情况,往往让人一头雾水. 看看下面的代码(摘自MSDN),你能猜到输出吗? public e ...
- C++和Java中枚举enum的用法
在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的 ...
随机推荐
- android edittext 去边框 去下划线
EditText的background属性设置为@null就搞定了:android:background="@null"style属性倒是可加可不加 附原文:@SlumberMac ...
- PAT 1016. 部分A+B (15)
正整数A的"DA(为1位整数)部分"定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA = 6,则A的"6部分"PA是66,因为A中有 ...
- ubuntu 12.04下zmap安装
zmap介绍 https://zmap.io/ ----------------华丽的分割线---------------- zmap 1.03 的安装 Step1: sudo apt-get ins ...
- 添加Distributor失败
上周做了一个case,客户无法为SQL Server instance配置remote distributor. 下面分享一下排查问题的过程,希望对您排查类似的问题所有帮助. 客户的环境中的SQL S ...
- [资料]自动化e2e测试 -- WebDriverJS,Jasmine和Protractor
1. http://sentsin.com/web/658.html 2. http://www.tuicool.com/articles/AnE3Mb 3. http://www.doc88.com ...
- &11,散列表
#1,是什么? 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个 ...
- weblogic下部署应用时slf4j与logbak冲突的解决办法
今天在weblogic上部署一个使用logback的应用时,报错如下: java.lang.IllegalArgumentException: Invalid 'logbackConfigLocati ...
- c++ 指针(二)
函数指针 可以使用算法的地址传递给方法,传递之前要先完成以下工作 1.获取函数的地址 2.声明一个函数指针 3.使用函数指针来调用函数 1.获取函数的地址,只要使用函数名就可以 Fun2(Fun1); ...
- C# StopWatch的使用
在做项目的时候,需要输出数据库操作的耗时,自己写了个方法.老大看到后,奇怪我为什么不用现成的.才知道有StopWatch这个类. 属性 名称 说明 Elapsed 获取当前实例测量得出的总 ...
- GridView的 OnRowDataBound 事件用法
<asp:GridView ID="RptUsers" runat="server" AutoGenerateColumns="False&qu ...