C++枚举类型详解
原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5171110.html
一、枚举类型的定义
enum 类型名 {枚举值表};
类型名是变量名,指定枚举类型的名称。
枚举值表也叫枚举元素列表,列出定义的枚举类型的所有可用值,各个值之间用“,”分开。
例:
enum Suit { Diamonds, Hearts, Clubs, Spades };
二、枚举变量说明
枚举变量有多种声明方式:
1.枚举类型定义与变量声明分开
如:
enum Suit { Diamonds, Hearts, Clubs, Spades };
enum Suit a;
enum Suit b,c;
变量a,b,c的类型都定义为枚举类型enum Suit。
2.枚举类型定义与变量声明同时进行
如:
enum Suit { Diamonds, Hearts, Clubs, Spades }a,b,c;
此处类型名可以省略,如以下的声明也是可以的。
enum { Diamonds, Hearts, Clubs, Spades }a,b,c;
3.用typedef先将枚举类型定义为别名,再利用别名进行变量的声明
有以下几种方式:
1).typedef enum Suit { Diamonds, Hearts, Clubs, Spades }Suit;
enum Suit a;
enum Suit b,c;
2).typedef enum{ Diamonds, Hearts, Clubs, Spades }Suit;
enum Suit a;
enum Suit b,c;
3).typedef enum Suit { Diamonds, Hearts, Clubs, Spades };
enum Suit a;
enum Suit b,c;
注意:同一程序中不能定义同类型名的枚举类型;不同枚举类型的枚举元素不能同名。
三、枚举元素说明
1.将会为每个枚举元素分配一个整型值,默认从0开始,逐个加1。

2.也可以在定义枚举类型时对枚举元素赋值,此时,赋值的枚举值为所赋的值,而其他没有赋值的枚举值在为前一个枚举值加1.

H~CZZ0P(XL3)Z]OM(9RWG.png)
H~CZZ0P(XL3)Z]OM(9RWG.png)
H~CZZ0P(XL3)Z]OM(9RWG.png)
2.枚举值是常量不是变量,不能在程序中再为枚举元素赋值。
四、枚举型与整型的转换
枚举型可以隐式的转换为int型,int型不能隐式的转换为枚举型。
int型不能隐式转换为枚举型

枚举型可以隐式的转换为int型

参考:https://msdn.microsoft.com/zh-cn/library/2dzy4k6e.aspx
http://www.cnblogs.com/JCSU/articles/1299051.html
C++枚举类型详解的更多相关文章
- C语言--enum,typedef enum 枚举类型详解
原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/ 有改动 C语言详解 - 枚举类型 注:以下全部代码的执行环 ...
- Java魔法堂:枚举类型详解
一.前言 Java的枚举类型相对C#来说具有更灵活可配置性,Java的枚举类型可以携带更多的信息. // C# enum MyColor{ RED = , BLUE = } Console.Write ...
- Java中的枚举类型详解
枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义 ...
- 测者的测试技术手册:Junit单元测试遇见的一个枚举类型的坑(枚举类型详解)
Enum的简介 枚举类型很早就在计算机语言中存在了,主要被用来将一组相似的值包含进一种类型中,这种类型的名称被定义成独一无二的类型描述符,这就是枚举类型. 在java语言中,枚举类型是一个完整功能的类 ...
- java枚举类型详解
枚举类型是JDK1.5的新特性.显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类.而这些类都是类库中Enum类的子类(java.lang.Enum<E>).它 ...
- 转载 - C - 枚举类型详解
出处:http://www.cnblogs.com/JCSU/articles/1299051.html 注:以下全部代码的执行环境为VC++ 6.0 在程序中,可能需要为某些整数定义一个别名,我们可 ...
- java枚举使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...
- java枚举使用详解(转)
在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...
- java 枚举使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...
随机推荐
- 如何在sublime中安装使用eslint
1:首先你需要全局安装eslint npm install -g eslint 安装完成后在控制台 输入 eslint -v 有版本号说明就可以在npm中使用了,可以检查语法的错误处,但还不能在sub ...
- Unix/Linux 网络 IO 模型简介
概述 Linux内核将所有外部设备都看做一个文件来操作.对该文件的读写操作会调用内核提供的系统命令, 返回一个fd(file descriptor)文件描述符.而对一个socket的读写也有相应的描述 ...
- MongoDB基础之五:游标
1.cursor(游标)是什么 ? 通俗的说,游标不是查询结果,而是查询的返回资源,或者接口. 通过这个接口,你可以逐条读取. 就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行 ...
- <C++Primer>第四版 阅读笔记 第一部分 “基本语言”
之前阅读时没有及时总结,现在慢慢补上. 第1章 快速入门 main 函数在很多方面都比较特别,其中最重要的是每个C++程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显示调用的函数 ...
- C语言 extern学习1
没有头文件时,通过本文件内的函数声明来确定定义域,实现功能: //单文件测试 #include <stdio.h> /* 经测试,C语言环境下子函数默认是void型:所以可省略不写 为严谨 ...
- 移动端开发(一. Viewport(视窗))
手机与浏览器 移动端开发主要针对手机,ipad等移动设备,随着地铁里的低头族越来越多,移动端开发在前端的开发任务中站的比重也越来越大.各种品牌及尺寸的手机也不尽相同.尺寸不同就算了分辨率,视网膜屏 ...
- [转]CentOS 6.3下Samba服务器的安装与配置
一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...
- IE兼容问题及处理
1.在IE6下,子元素能撑开父级设置好的宽高 2.IE6下的最小高度,高度小于19px的元素在IE6下会被当做19px来处理 解决办法:overflow:hidden; 3.IE6下 不支持1px的点 ...
- [MongoDB] - mongod.exe参数详解
mongod.exe是启动mongodb的命令,我们可以通过mongod --help来查看帮助文档.下面是各个参数的对应中文解释.<基于Mongo3.0.5> 通用参数选项 -h/--h ...
- web开发之Servlet 一
因为最近在研究公司一套新的框架,发现这套框架的底层是对Struts2,Spring 封装后的WEB应用框架,而我发现如果仅仅是利用这个框架开发,确实很容易快速上手,做业务来说是没有问题的,但我觉得如果 ...