zoukankan      html  css  js  c++  java
  • 浅析c++和c语言的enum类型

    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
    ", c);//13
    19     printf("%d
    ", white);//11
    20     c = 9;//依然可以用,可以运行,但是9在枚举范围外
    21     printf("%d
    ", 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++枚举最大不同在于枚举元素类型的限定。

    需要程序源码的可以加我微信x241602私聊。
  • 相关阅读:
    linux安装php
    linux安装apache
    linux文件目录结构
    第五篇 -- 学习第四天打卡20190616
    第四篇 -- 学习第三天打卡20190615
    第一篇 -- 《每天读一点经济学常识 》 --于台风
    第三篇 -- 学习第二天打卡20190614
    第二篇--学习第一天打卡20190613
    第一篇--程序员如何学英语
    第二篇--无题
  • 原文地址:https://www.cnblogs.com/huipengbo/p/6955061.html
Copyright © 2011-2022 走看看