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 枚举使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集” ...
随机推荐
- 【微信开发】玩转PHP 数组用法!
数组的起始下标可以不从0开始,例子为从2开始. $data = array(2=>'A','B','C'); 运行结果:$data = array(2=>'A',3=>'B' ...
- spring入门--Spring框架底层原理
上一篇的博客,我们可以看出来,spring可以维护各个bean (对象),并向其中注入属性值.那么,如果们要把一个对象的引用注入另外一个对象呢?应该怎么处理呢? 我们知道,对于对象中的属性来说,我们注 ...
- 基于DDD的.NET开发框架ABP实例,多租户 (Sass)应用程序,采用.NET MVC, Angularjs, EntityFramework-介绍
介绍 基于ABPZERO的多租户 (Sass)应用程序,采用ASP.NET MVC, Angularjs-介绍 ASP.NET Boilerplate作为应用程序框架. ASP.NET MVC和ASP ...
- git文件夹下项目更改ip地址小结
在我们开发的过程中,经常切换项目IP地址是很正常的,之前弄过一次,没有记住,现在简单的总结下: 找到要切换IP地址的项目,点击鼠标右键,弹出下图: 打开该项目的路径后,双击打开该项目,具体参考自己项目 ...
- CentOS安装Tomcat8
安装环境:CentOS-6.5 安装方式:源码安装 软件:apache-tomcat-8.0.0.RC3.tar.gz 下载地址:http://tomcat.apache.org/download-8 ...
- mysql远程连接权限
环境:mysql6.0 .Navicat Premium 用户名:root 密码:123456 本地连接无问题 远程连接mysql的时候应该碰到Navicat Premium 报错. 错误代码是11 ...
- Codeforces Round #383 Div 1题解
第一次打Div 1,感觉还是挺难的..把基础题打完就日常划水了.... [A. Arpa's loud Owf and Mehrdad's evil plan](http://codeforces.c ...
- centos 安装gcc->联网 问题解决
本篇部分摘抄至TD_时缔 VMware虚拟机下安装centosmini版本,安装后第一件事就是yum update 但是有错:cannot find a valid baseurl for repo ...
- php的empty()和isset()用法
共同点: 1.都可以判定一个变量是否为空: 2.都返回boolean类型,即true或false. 区别: 1.isset()用来检测变量是否设置,只能用于变量,因为传递任何其它参数都将造成解析错误. ...
- HttpClient 工具
什么是httpclient HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 ja ...