新手入门:C/C++中枚举类型(enum)

2016-02-19 20:21 1 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

 
  
    假如一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。
  
   !-- frame contents -- !-- /frame contents --   举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。  这里要说一下,假如你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! enum box{pencil,pen}; 
   
  enum box box2;//或者简写成box box2;  再有一种就是在声明的时候同时定义。enum {pencil,pen}box,box2; //在声明的同时进行定义!  枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作! enum box{pencil=1,pen=2};  但是这里要非凡注重的一点是,假如你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,假如你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如  前面说了那么多,下面给出一个完整的例子大家可以通过以下的代码的学习进行更完整的学习!#include iostream 
  using namespace std; 
   
  void main(void) 
  { 
      enum egg {a,b,c}; 
      enum egg test; //在这里你可以简写成egg test; 
   
      test = c; //对枚举变量test进行赋予元素操作,这里之所以叫赋元素操作不叫赋值操作就是为了让大家明白枚举变量是不能直接赋予算数值的,例如(test=1;)这样的操作都是不被编译器所接受的,正确的方式是先进行强制类型转换例如(test = (enum egg) 0;)! 
   
      if (test==c) 
      { 
          cout "枚举变量判定:test枚举对应的枚举元素是c"  endl; 
      } 
   
      if (test==2) 
      { 
          cout "枚举变量判定:test枚举元素的值是2"  endl; 
      } 
   
      cout  a  ""  b  ""  test endl; 
   
      test = (enum egg) 0; //强制类型转换 
      cout  "枚举变量test值改变为:"  test endl; 
      cin.get(); 
  }   看到这里要最后说一个问题,就是枚举变量中的枚举元素(或者叫枚举常量)在非凡情况下是会被自动提升为算术类型的!#include iostream 
  using namespace std; 
  
    
  void main(void) 
  { 
      enum test {a,b}; 
      int c=1+b; //自动提升为算术类型 
      cout  c endl; 
      cin.get(); 
  } 更多内容请看C/C++技术学堂  C/C++技术专题  Solaris基础知识入门专题,或

来源:https://www.tulaoshi.com/n/20160219/1623416.html

延伸阅读
布尔类型对象可以被赋予文字值true或者false,所对应的关系就是真于假的概念! 我们通常使用的方法是利用他来判定条件的真于假,例如如下的代码: //程序作者:管宁 !-- frame contents -- !-- /frame contents -- //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必闻名出处和作者...
对于数组和多维数组的内容这里就不再讨论了,前面的教程有过说明,这里主要讲述的数组和指针类型的关系,通过对他们之间关系的了解可以更加深入的掌握数组和指针特性的知识! 一个整数类型数组如下进行定义 int a[]={1,2,3,4}; 如果简单写成 a;//数组的标识符名称 这将代表的是数组第一个元素的内存地址,a;就相当于&a...
  堆内存是什么呢? 我们知道在c/c++中定义的数组大小必需要事先定义好,他们通常是分配在静态内存空间或者是在栈内存空间内的,但是在实际工作中,我们有时候却需要动态的为数组分配大小, !-- frame contents -- !-- /frame contents -- 在这里c库中的malloc.h头文件中的malloc()函数就为您解决了问...
什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的, !-- frame contents -- !-- /frame contents -- 因为数组是...
本文中,将要介绍与继续相关的C++/CLI主题,并以现实生活中银行交易的三种形式:存款、取款、转账,来说明类的继续体系,且以一种新的枚举形式来实现。 枚举器 请看例1中声明的类型,它存在于其自身的源文件中,并编译为一个只包含此类型的程序集: 例1: public enum class TransactionType : ...

经验教程

133

收藏

28
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部