枚举类型
一、课题
C++枚举类型enum。
二、学习目的
说明c++中的枚举含义以及用法。
三、学习重点
枚举数据类型是一种由程序员定义的数据类型,其合法值是与它们关联的一组命名整数常量。之所以被称为枚举类型,就是因为命名常量是作为数据类型定义的一部分而枚举或列出的。
以下是枚举类型声明的示例:
enum Name {Tom, Mark, Bill, Teresa, John};
默认情况下,编译器设置第一个枚举量为 0,下一个为 1,以此类推。在上述示例中,Tom 的值将是 0,Mark 的值为 1,等等。最后一个枚举量 John 的值为 4。
如下:
enum Colors { red, orange, yellow = 9, green, blue }
;
在该示例中,命名常量 red 将被赋值为 0,orange 将为 1,yellow 将为 9,green 将为 10,blue 将为 11。
四、学习难点
举值可进行关系运算;整数值不能直接赋值给枚举变量,如需要将整数赋值给枚举变量,应进行强制转换。
重要的是要意识到,enum 语句示例实际上并没有创建任何变量,只是定义数据类型。当以后创建这个数据类型的变量时,它们看起来就是整数,并且这些整数的值被限制在与枚举集合中的符号名称相关联的整数上。以下语句显示了如何定义Name数据类型的变量:
Name student;
此语句的形式与其他任何变量定义一样,首先是数据类型名称,然后是变量名称。请注意,数据类型名称是 Name,而不是 enum Name。
现在已经创建了 student 变量,它可以被赋予一个值,如下所示:
student = Mark;
变量的值可以这样测试:
if (student == Mark)
请注意,在这两个例子中,Mark周围没有引号。因为它是一个命名常量,而不是字符串常数。
即使枚举数据类型中的值实际存储为整数,也不能总是将整数值替换为符号名称。例如,不能使用下面的语句将 Mark 赋值给 student:
student = 1; //错误
但是,可以使用整数值而不是符号名称来测试枚举变量。例如,以下两个 if 语句是等效的:
if (student == Bill)
if (student == 2)
还可以使用关系运算符来比较两个枚举变量。例如,以下 if 语句确定存储在 student1 中的值是否小于存储在 student2 中的值:
if (student1 <student2)
如果 student1 等于 Bill,student2 等于 John,则该语句为 true。但是,如果 student1 等于 Bill,而 student2 等于 Sharon,则该语句将为 false。
五、代码运用
#include<iostream>
using namespace std;
enum Weekday{SUNDAY,MONDAY,TUESDAY,WENDSDAY,TURESDAY,FRIDAY,SATURDAY};
int main()
{
Weekday day;
enum Weekday today = FRIDAY;
day = SUNDAY;
cout << day << endl << today << endl;
return 0;
}
原文地址:https://www.cnblogs.com/zxsnh/p/11516618.html
- 【深度学习】使用tensorflow实现VGG19网络
- Leetcode 289. Game of Life
- Leetcode 287. Find the Duplicate Number
- Leetcode 284. Peeking Iterator
- Leetcode 283. Move Zeroes
- Leetcode 282. Expression Add Operators
- Leetcode 279. Perfect Squares
- Leetcode 278. First Bad Version
- Leetcode 275. H-Index II
- Leetcode 274. H-Index
- 值得 .NET 开发者了解的15个特性
- Angular和Vue.js 深度对比
- 前端开发者常用的9个JavaScript图表库
- 1000多个项目中的十大JavaScript错误以及如何避免
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- akka-grpc - 基于akka-http和akka-streams的scala gRPC开发工具
- Redis Sentinel原理与实现 (中)
- Keras_Tutorial_v2a
- 根据字符串生成对应Hash值
- Redis Sentinel原理与实现 (下)
- 要点4:C的文件操作
- 服务器端请求伪造——SSRF
- 唯一ID生成原理与PHP实现
- Liquid模板语言参考文档
- 谈谈协程
- 获取图片的各类参数信息 查看图片用了何种修图软件
- Nginx线程池浅析
- Python实现实时截图文字内容识别OCR 图片内容转文本
- Residual_Networks_v2a
- C++中STL学习笔记——各类容器混合使用