`
yshlin
  • 浏览: 63548 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C++之枚举(C++入门)

    博客分类:
  • c++
阅读更多

如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。

  举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!

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操作,例如<P class=code enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作!
复制代码
  前面说了那么多,下面给出一个完整的例子大家可以通过以下的代码的学习进行更完整的学习!

#include <iostream>  

using namespace std;  

void main(void)  
{  
    enum egg {a,b,c};  
    enum egg test; //在这里你可以简写成egg test;
    /**对枚举变量test进行赋予元素操作,
     *这里之所以叫赋元素操作不叫赋值操作就是为了让大家明白枚举变量是不能直接赋予算数值的,
     *例如(test=1;)这样的操作都是不被编译器所接受的,
     *正确的方式是先进行强制类型转换例如(test = (enum egg) 0;)!
     */
    test = c; 
    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++从入门到精通(国家863)

    从上述知识点可以看出,《C++从入门到精通》这本书不仅覆盖了C++的基础语法,还深入介绍了面向对象编程的核心概念,以及一些高级主题如模板、异常处理等。通过系统地学习这些内容,读者可以逐步掌握C++编程,并为...

    C++代码快速入门

    1. 变量与数据类型:C++支持基本数据类型(如int、char、float、double等)以及复合数据类型(如数组、结构体、枚举)。变量是存储数据的容器,需要先声明后使用。 2. 运算符:包括算术运算符(+、-、*、/、%)、...

    c++入门课件ppt格式

    C++是一种广泛应用于系统软件开发、游戏编程、嵌入式系统和各种应用程序的高级编程语言。作为初学者,了解并掌握C++的基础知识是至关重要的。以下是对标题和描述中涉及知识点的详细解释: 1. **C语言程序设计初步**...

    《Visual C++ 2010入门经典》文字版[PDF]

    ### Visual C++ 2010 入门经典——核心知识点概述 #### 一、书籍基本信息 - **中文名称**:Visual C++ 2010 入门经典 - **英文原名**:Ivor Horton's Beginning Visual C++ 2010 - **别称**:VC2010 - **作者**:...

    C++入门经典(第3版)

    ### C++入门经典(第3版)核心知识点详解 #### 一、概述 《C++入门经典(第3版)》是一本系统介绍C++语言的权威书籍,它全面覆盖了C++的基础语法到高级特性,是初学者和进阶学习者不可多得的学习资源。该书不仅详细...

    C++基础教程_完整版 - 副本.pdf

    * 变量和数据类型:介绍了 C++语言中的变量和数据类型,包括基本数据类型、复杂数据类型、枚举类型等。 * 常量:介绍了 C++语言中的常量,包括整数常量、浮点数常量、字符常量等。 * 操作符:介绍了 C++语言中的操作...

    C++入门经典(第三版)

    总之,《C++入门经典(第三版)》通过丰富的示例和详实的解释,引导读者从零开始逐步掌握C++的核心概念和技术,是学习C++的不二之选。无论是对于计算机科学的学生,还是希望提升技能的开发者,这本书都提供了宝贵的...

    C++快速入门

    《C++快速入门》是一本面向初学者的英文教材,旨在帮助读者在短时间内掌握编写基础C++程序的能力。通过该教材,读者将逐步了解C++的历史背景,与C语言的联系,以及C++的优势。同时,书中将介绍C++标准的演化,C++...

    C++从入门到精通源码.rar

    13. **C++11及其以上版本的新特性**:包括lambda表达式、右值引用、auto关键字、类型推断、强类型枚举等,这些新特性使C++更现代、更易用。 通过《C++从入门到精通》源码的学习,读者将能够逐步熟悉并掌握上述知识...

    C++练习题(适合新手)

    - **枚举类型**:题目中提到了“枚举”这一概念,C++中的枚举类型是一种用户定义的类型,可以为一组整数值赋予有意义的名字。例如,`enum Color {Red, Green, Blue};` 这里定义了一个枚举类型Color,它有三个值:Red...

    C++入门级学习教程

    【C++入门级学习教程】 本教程是一份个人学习笔记,旨在从基础知识开始逐步深入讲解C++编程语言,包括内存管理、指针等核心概念,非常适合初学者和想要巩固C++基础的程序员。 ### 第一章:C/C++语言概论与结构 1....

    C++基础知识总结

    本文档介绍了 C++ 中关于数据类型和变量作用域的基础知识,包括内置数据类型、枚举类型、变量定义等概念。这些基础知识对于理解 C++ 程序设计至关重要,也是进一步学习面向对象编程的基础。接下来的部分将更深入地...

    C++语言入门

    接着,C++的函数概念是其核心特性之一。函数是一段可重复使用的代码块,可以接受参数并返回值。在C++中,你可以定义自己的函数,也可以使用标准库提供的函数。理解函数的声明、定义和调用是学习C++的关键。 面向...

    C++初学者入门指南第七篇 中文word

    ### C++初学者入门指南第七篇:更多数据类型与运算符 #### 一、引言 在本章节中,我们将深入探讨C++中更广泛的数据类型及其应用,以及一些额外的运算符,如位运算符、移位运算符等。通过对这些高级特性的学习,读者...

    C++入门,C++基础

    本压缩包文件提供了丰富的C++学习资料,涵盖了从入门到进阶的关键知识点。 首先,"C++开始"部分是初学者接触这门语言的第一步,它会介绍C++的历史、特点以及如何安装编译环境,如GCC或Clang。这部分还会讲解基本的...

    C++基础知识总结入门级

    "C++基础知识总结入门级"这个主题涵盖了初学者需要掌握的关键概念,让我们一一展开讨论。 首先,C++的IO系统是程序与用户交互的基础。`C++的IO.txt`可能包含关于iostream库的内容,如cin和cout用于标准输入输出,...

    C++入门学习文档

    ### C++ 入门学习文档知识点概览 #### 1. 快速入门 ##### 1.1 理论基础 ...以上是C++入门学习文档的核心知识点总结,详细涵盖了C++编程语言的基本理论和实践操作,适合初学者按照文档的指导逐步掌握C++的编程技能。

    千锋C++笔记.zip

    12. **C++11及后续标准**:C++11引入了大量新特性,如右值引用、lambda表达式、auto关键字、强类型枚举等,进一步提升了语言的现代性和实用性。后续的C++14、C++17、C++20等版本也不断扩展和完善了C++的标准库。 ...

Global site tag (gtag.js) - Google Analytics