1.先看c语言枚举类型

1.c语言定义枚举类型,每一个枚举元素都是一个整数
2.注重数据类型,没有数据类型限定
3.相邻枚举元素相差整数
4.可以通过整数访问,不够安全

2.上代码:

 1 #include<stdio.h>
2 #include<stdlib.h>
3
4 /*
5
6 1.c语言定义枚举类型,每一个枚举元素都是一个整数
7 2.注重数据类型,没有数据类型限定
8 3.相邻枚举元素相差整数
9 4.可以通过整数访问,不够安全
10
11 */
12 enum color {black=10,white,yellow,red,blue,green};
13
14 void main()
15 {
16 enum color c;
17 c = red;
18 printf("%d\n", c);//13
19 printf("%d\n", white);//11
20 c = 9;//依然可以用,可以运行,但是9在枚举范围外
21 printf("%d\n", c);//13
22 system("pause");
23
24 }

3.c枚举测试代码运行结果

4.再看c++枚举类型

1.c++枚举类型限定元素类型,如下就是将元素限定为char类型
2.可以直接用类型名定义枚举变量和赋值
3.由于有了类型限定,所以不能随便给枚举变量赋值,只能赋值类型中的元素
4.c++枚举类型更安全

5.上代码

 1 #include<iostream>
2
3 using namespace std;
4
5 /*
6 1.c++枚举类型限定元素类型,如下就是将元素限定为char类型
7 2.可以直接用类型名定义枚举变量和赋值
8 3.由于有了类型限定,所以不能随便给枚举变量赋值,只能赋值类型中的元素
9 4.c++枚举类型更安全
10 */
11 enum color:char { black='A', white, yellow, red, blue, green };
12
13 void main()
14 {
15 color mc = red;//定义并初始化方式1
16 cout << mc << endl;//3,如果有black='A'则结果为68
17 //mc = 1;=”: 无法从“int”转换为“color
18 //mc = 'A'; “ = ”: 无法从“char”转换为“color”
19 mc = color::white;//新语法,赋值方式2
20 cout << mc << endl;//1,如果有black='A'则结果为66
21
22 color c(red);//初始化方式3
23 cout << c << endl;//3,如果有black='A'则结果为68
24 system("pause");
25 }

6.查看运行结果

7.从上面可以看出c枚举和c++枚举最大不同在于枚举元素类型的限定。

浅析c++和c语言的enum类型的更多相关文章

  1. enum类型的本质(转)

    原地址:http://www.cppblog.com/chemz/archive/2007/06/05/25578.html 至从C语言开始enum类型就被作为用户自定义分类有限集合常量的方法被引入到 ...

  2. Java 语言中 Enum 类型的使用介绍

    Enum 类型的介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常 ...

  3. C#6.0语言规范(四) 类型

    C#语言的类型分为两大类:值类型和引用类型.值类型和引用类型都可以是泛型类型,它们采用一个或多个类型参数.类型参数可以指定值类型和引用类型. type : value_type | reference ...

  4. Java 语言中 Enum 类型的使用介绍【转载】

    简介:本文主要介绍了 Java 语言中枚举类型,以及如何定制 Enum 类型的定义,如何正确使用 Enum 类型. From:http://www.ibm.com/developerworks/cn/ ...

  5. C语言进阶——enum, sizeof, typedef 分析11

    枚举类型的使用方法: enum是C语言的 一种自定义类型 enum值是可以根据需要自定义的整型值 第一个enum的值默认为0 默认情况下的enum值是在前一个定义值的基础上加 1 enum类型的变量只 ...

  6. Enum 类型

    枚举类型(Enumerated Type) 什么是枚举? 枚举是一个被命名的整型常数的集合.在多种编程语言中都有使用(C/C++/c#/java等). 示例 public enum Size { S, ...

  7. set和enum类型的用法和区别

    mysql中的set和enum类型的用法和区别 mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值, 不同的是set可以取多个值,enum只能取一个值.   1 2 3 ...

  8. MYSQL中 ENUM 类型

    MYSQL中 ENUM 类型的详细解释 ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串(&quo ...

  9. C#中enum类型

    最近碰到了枚举类型,就顺便整理下. 枚举的基类Enum,可以是除 Char 外的任何整型.不做显示声明的话,默认是整形(Int32). 声明一个Enum类型: /// <summary> ...

随机推荐

  1. 5分钟搞定iOS抓包Charles,让数据一清二楚

    Charles安装 HTTP抓包 HTTPS抓包   1. Charles安装 官网下载安装Charles:https://www.charlesproxy.com/download/ 2. HTTP ...

  2. jq获取被选中的option的值。jq获取被选中的单选按钮radio的值。

    温故而知新,一起复习下jq的知识点. (1) jq获取被选中的option的值 <select id="select_id"> <option value=&qu ...

  3. lazy ideas in programming(编程中的惰性思想)

    lazy形容词,懒惰的,毫无疑问是一个贬义词.但是,对于计算机领域,lazy却是非常重要的优化思想:把任务推迟到必须的时刻,好处是避免重复计算,甚至不计算.本文的目的是抛砖引玉,总结一些编程中的laz ...

  4. Numpy入门 - 数组排序

    本节主要讲解numpy数组的排序方法sort的应用,包括按升序排列和按降序排列. 一.按升序排列 import numpy as np arr = np.array([[3, 1, 2], [6, 4 ...

  5. caioj 1237: 【最近公共祖先】树上任意两点的距离 在线倍增ST

    caioj 1237: [最近公共祖先]树上任意两点的距离 倍增ST 题目链接:http://caioj.cn/problem.php?id=1237 思路: 针对询问次数多的时候,采取倍增求取LCA ...

  6. 在网站开发中经常用到的javaScript技术

     1>屏蔽功能类 1.1 屏蔽键盘所有键<script language="javascript"><!--function document.onkeyd ...

  7. Aurora Player 开源啦~~~

    上一年做了很久的项目,是一个完整版的视频播放器,强大.美观!!! 现在转投UWP了,决定开源这个项目. 在你下载本项目之前,请仔细阅读每一行字,以免以后引起不必要的法律纠纷. 本项目最终解释权归本人所 ...

  8. H5混合开发二维码扫描以及调用本地摄像头

    今天主管给了我个需求,说要用混合开发,用H5调用本地摄像头进行扫描二维码,我之前有做过原生安卓的二维码扫一扫,主要是通过调用zxing插件进行操作的,其中还弄了个闪光灯.但是纯H5的没接触过,心里没底 ...

  9. Java开发小技巧(二):自定义Maven依赖

    前言 我们在项目开发中经常会将一些通用的类.方法等内容进行打包,打造成我们自己的开发工具包,作为各个项目的依赖来使用. 一般的做法是将项目导出成Jar包,然后在其它项目中将其导入,看起来很轻松,但是存 ...

  10. mvc 中Range中max和min值晚绑定

    对于Attribute : Range(min,max)的min和max必须在用的时候给,但是需求有时须要把这两个值存db.动态取出的.这时就须要razor帮忙了: @Html.TextBoxFor( ...