1.先看c语言枚举类型

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

2.上代码:

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

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

4.再看c++枚举类型

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

5.上代码

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

    git是一款分布式代码版本管理工具,通过git能够更加高效地协同编程.了解git的工作原理将有助于我们使用git工具更好地管理项目.通过了解.git文件夹中的文件组成,我们可以从一个角度去窥探git的 ...

  2. MeshRenderer组件及相关API

    MeshRenderer:网格过滤器,用于"渲染"显示模型. Cast Shodows:是否投射阴影.(on:开.off:关) Receive Shodows:是否接收阴影. Ma ...

  3. C# Code First 实例学习

    Code First是Entity Framework提供的一种新的编程模型.通过Code First我们可以在还没有建立数据库的情况下就开始编码,然后通过代码来生成数据库.下面具体讲解一下,在操作的 ...

  4. ES6这些就够了

    刚开始用vue或者react,很多时候我们都会把ES6这个大兄弟加入我们的技术栈中.但是ES6那么多那么多特性,我们需要全部都掌握吗?秉着二八原则,掌握好常用的,有用的这个可以让我们快速起飞. 接下来 ...

  5. Mybatis(三)返回值

    Mybatis返回值 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则 ...

  6. Web Mining and Big Data 公开课学习笔记 ---lecture1

    1.1  LOOK Finding "stuff" on the web or computer or room or hidden in data Finding documen ...

  7. cmd 更改计算机名

    bat  更改计算机名 不用重启电脑就生效^_^ @Echo off Color 0A title --更改计算机名 :A cls echo. echo. [0]退出 echo. echo. 不用重启 ...

  8. 分布式版本控制系统 Git 教程

    简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布 ...

  9. gitlab环境搭建

    企业级的git管理程序.最好用的之一吧.估计其它的也得叫之二. 怎么搭建呢? 2G以上配置的机器才可以搞. . 如下 安装需要注意的是.如果开了80端口,8080的需要修改配置文件  下面会提到 1. ...

  10. php XSS安全过滤代码

    function remove_xss($val) { // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are ...