精华内容
下载资源
问答
  • 它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型,下面我们一起来看几个C语言枚举类型学习例子.介绍枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型...

    枚举类型在C语言等计算机编程语言中是一种构造数据类型[1] 。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型,下面我们一起来看几个C语言枚举类型学习例子.

    介绍

    枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值

    ​枚举类型使一种基本数据类型,用于声明一组命名的常数,当一种变量有几种可能的取值使,可以定义为枚举类型。

    ​它的值为符号常量而不是字面值,这些类型的变量实际上以整型的方式存储,这些符号名实际值都是整型值。

    ​定义方式1:

    ​enum num{first,second,third,forth};

    ​enum num num1,num2; 类似struct的定义方式。

    定义方式2:

    ​enum {first,second,third,forth} num1,num2;

    ​有些时候我们可以对这些符号名指定特定的整型值,比如:

    ​enum {first=1,second=2,third,forth},未指定的值默认比前一个符号大1。但是我们并不推荐这种赋值,这样会把枚举变量和整数混在一起,反而削弱了枚举类型的字面含义。

    如何使用枚举类型:

    ​以第一种第一方式为例,num1,num2为枚举类型变量,但是这些变量每次只能有一个值,这个值使枚举类型定义中的first、second、third、forth四种,如果有些变量值的取值有限,并且我们想尽可能通过字面意思表达出来,使用枚举类型使最合适不过了。

    看一个实际的例子:

    enum enumex{

    first,

    second,

    third,

    forth,

    };

    enum enumex m_enumex;

    m_enumex = first;

    switch(m_enumex)

    {

    case first:printf("firstn");break;

    case second:printf("secondn");break;

    case third:printf("thirdn");break;

    case forth:printf("forthn");break;

    default: break;

    }

    我们完全可以根据不同情况下m_enumex的取值来安排我们的代码。在定义enum时,最后一个逗号可加可不加,加上会看着更清楚。

    展开全文
  • 枚举类型枚举类型: 列出所有可能的值枚举类型的定义枚举类型定义的一般格式:enum 枚举类型名 {枚举值表};在枚举值表中应罗列出所有可用值,这些值也成为枚举元素。例如:enum weekdays {Sun, Mon, Tue, Wed, Thu, ...

    枚举类型

    枚举类型: 列出所有可能的值

    枚举类型的定义

    枚举类型定义的一般格式:

    enum 枚举类型名 {枚举值表};

    在枚举值表中应罗列出所有可用值,这些值也成为枚举元素。

    例如:

    enum weekdays {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

    枚举类型名为weekdays,枚举值共有7个,对应一周中的7天。凡是被定义为weekdays类型的变量的取值只能是这7个枚举值之一。

    枚举变量的定义

    如同结构体类型和共用体类型一样, 枚举变量也有不同的定义方式。设有变量today、yesterday被说明为weekdays类型

    1.枚举类型的定义

    枚举类型定义的一般格式如下:enum枚举类型名{枚举值表};

    在枚举直表中应罗列出所有可用值,这些值也成为枚举元素。例如:

    enum weekdays {Sun, Mon, Tue, Wed, Thu, Fri, Sat};

    枚举类型名为weekdays,枚举值共有7个,对应一周中的7天。 凡是被定义为wek.days类型的变量的取值只能是这7个枚举值之一。

    2.枚举变量的定义

    如同结构体类型和共用体类型样, 枚举变量也有不同的定义方式,设有变量today、yesterday被说明为weekdays类型,下面举例加以说明。

    (1)先声明枚举类型后再定义枚举变量。

    enum weekdays{Sun,Mon,Tue,Wed,Thu,Fri,Sat};

    enum weekdays today, yesterday;

    (2)声明枚举类型的同时定义枚举变量。

    enum weekdays{Sun, Mon, Tue, Wed, Thu Fin, Sat) today, yesterday;

    (3)直接定义枚举变量。

    enum (Sun, Mon, Tue, Wed, Thu, Fri, Sat) taday,ysterday;

    枚举类型的使用

    枚举类型用于取值有限的数据,在使用中有以下规定。

    ①枚举值是常量,不是变量,不能在程序中用赋值语句再对它赋值。

    ②枚举元素本身由系统定义了一个表示序号的数值,默认从0,1,2,-.如在weekdays中,Sun值为0,Mon值为.., Sat值为6。

    ③只能将枚举值赋给枚举变量,不能把元素值直接赋给枚举变量。例如: “today=Sun;"是正确的,而“today= 0;”是错误的。

    展开全文
  • C语言枚举类型

    2021-07-11 10:39:56
    枚举类型 枚举类型定义 enum 枚举类型名 {标识符1, 标识符2, 标识符3, ... 标识符n}; enum days {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; 枚举变量的定义

    上一篇文章:C语言共用体

    枚举类型

    根据程序的需要,某些变量的取值只有几种固定的情况。为了增加程序的可读性,通常把这种变量定义成枚举类型。

    枚举类型的定义

    enum 枚举类型名 {标识符1, 标识符2, 标识符3, ... 标识符n};
    
    • 枚举类型花括号里面的标识符称为枚举元素或枚举常量
    • 枚举型仅限于取值有限的数据
    enum days {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
    

    枚举变量的定义

    enum days {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
    //先定义枚举类型
    	enum days workday;    //再定义枚举变量workday
    
    enum [days] {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday} workday;//枚举类型和枚举变量同时定义
    

    输出工作日和休息日

    #include <stdio.h>
    enum days {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
    //枚举元素是有值的,从第一个元素开始,往后分别是0,1,2,3,4,5...
    int main(){
    	enum days day;
        for(day = Sunday; day <= Saturday; day++)
            switch(day){
            	case 1:printf("今天是星期一,工作日。\n");break;
                case 2:printf("今天是星期二,工作日。\n");break;
                case 3:printf("今天是星期三,工作日。\n");break;
                case 4:printf("今天是星期四,工作日。\n");break;
                case 5:printf("今天是星期五,工作日。\n");break;
                case 6:printf("今天是星期六,工作日。\n");break;
                case 0:printf("今天是星期天,工作日。\n");break;
            }
    	return 0;
    }
    

    运行结果
    在这里插入图片描述


    #include <stdio.h>
    typedef enum month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec}Mon;
    //typedef定义别名Mon
    int main(){
        Mon m;       //使用别名定义枚举类型的变量
        for(m=Jan; m<=Dec; m++){
        	switch(m){
            	case Mar: printf("Mar is Spring\n");break;
                case Apr: printf("Apr is Spring\n");break;
                case May: printf("May is Spring\n");break;
                case Jun: printf("Jun is Summer\n");break;
                case Jul: printf("Jul is Summer\n");break;
                case Aug: printf("Aug is Summer\n");break;
                case Sep: printf("Sep is Autumn\n");break;
                case Oct: printf("Oct is Autumn\n");break;
                case Nov: printf("Nov is Autumn\n");break;
                case Dec: printf("Dec is Winter\n");break;
                case Jan: printf("Jan is Winter\n");break;
                case Feb: printf("Feb is Winter\n");break;
            }
        }
        return 0;
    }
    

    运行结果
    在这里插入图片描述


    • 枚举类型的变量可以比较大小
    #include <stdio.h>
    enum month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec};
    int main(){
        enum month m1;
        m1 = Feb;
        enum month m2;
        m2 = Jan;
        printf("%d",m1 > m2);     //输出的结果为1,m1的值为1,m2的值为0
    
        return 0;
    }
    
    • 枚举元素的值可以自己指定
    #include <stdio.h>
    enum days {Sunday=1, Monday=4, Tuesday, Wednesday, Thursday, Friday, Saturday};
    int main(){
        enum days day;
        day = Tuesday;
        for(day; day <= Saturday; day++)
            printf("%d\n",day);
    
        return 0;
    }
    

    输出结果
    在这里插入图片描述


    下一篇文章:C语言文件

    展开全文
  • 要使用枚举类型的变量,首先需要先定义一个枚举类型名,然后再声明该变量是枚举类型的例1:enum WEEKDAY{ \\该语句定义了一个枚举类型MONDAY = 1,TUSEDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,S...

    在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个星期的七种可能,性别的两种可能等等。C语言为这种类型的变量的定义提供了enum关键字。

    要使用枚举类型的变量,首先需要先定义一个枚举类型名,然后再声明该变量是枚举类型的

    例1:enum WEEKDAY{ \\该语句定义了一个枚举类型

    MONDAY = 1,

    TUSEDAY,

    WEDNESDAY,

    THURSDAY,

    FRIDAY,

    SATURDAY,

    SUNDAY

    };

    enum WEEKDAY day; \\该语句声明了一个枚举类型的变量

    上述例子中的MONDAY、TUSEDAY等称为枚举元素或枚举常量(本人更倾向于称其为枚举常量,因为这样可以反映其性质),它们是用户自定义的标识符而已。

    在没有显式说明的情况下,枚举类型中的第一个枚举常量的值为0,第二个为1,以此类推。如果只指定了部分枚举常量的值,那么未指定值的枚举常量的值将依着最后一个指定值向后递增(步长为1)

    不同枚举类型中的枚举常量的名字必须互不相同。同一枚举类型中的不同的枚举常量可以具有相同的值

    枚举类型为建立常量值与标识符之间的关联提供了一种便利的方式。相对于#define语句来说,它的优势在于常量值可以自动生成

    尽管可以声明枚举类型的变量,但编译器不检查这种类型变量中存储的值是否为该枚举类型中的有效值,不过,枚举类型的变量提供这种检查

    注意:不能对枚举常量进行赋值操作(定义枚举类型时除外)

    枚举常量和枚举变量可以用于判断语句,实际用于判断的是其中实际包含的值

    一个整数不能直接赋值给一个枚举变量,必须用该枚举变量所属的枚举类型进行类型强制转换才行

    使用常规的手段输出无法输出枚举常量所对应的字符串,因为枚举常量为整型值

    在使用枚举变量的时候,我们不关心其值的大小,而是其表示的状态

    例2:enum WEEKDAY{

    MONDAY = 1,

    TUSEDAY,

    WEDNESDAY,

    THURSDAY,

    FRIDAY,

    SATURDAY,

    SUNDAY

    };

    注意点:枚举常量之间用逗号隔开,最后一个枚举常量之后不需要逗号

    整个枚举类型定义语句的最后需要一个分号

    WEEKDAY是该枚举类型的名字,这是一个可选项

    1、定义枚举类型后声明枚举变量enum WEEKDAY{

    MONDAY = 1,

    TUSEDAY,

    WEDNESDAY,

    THURSDAY,

    FRIDAY,

    SATURDAY,

    SUNDAY

    };

    int main(int argc, char ** argv)

    {

    enum WEEKDAY day;

    day = MONDYA;

    return 0;

    }

    2、定义枚举类型的同时声明枚举变量enum WEEKDAY{

    MONDAY= 1,

    TUSEDAY,

    WEDNESDAY,

    THURSDAY,

    FRIDAY,

    SATURDAY,

    SUNDAY

    }day;

    int main(int argc, char ** argv)

    {

    day = MONDYA;

    return 0;

    }

    3、定义枚举类型的同时利用typedef关键字将其声明为类型别名,然后利用该类型别名声明枚举类型变量typedef enum WEEKDAY{

    MONDAY = 1,

    TUSEDAY,

    WEDNESDAY,

    THURSDAY,

    FRIDAY,

    SATURDAY,

    SUNDAY

    }WEEKDAYS;

    int main(int argc, char ** argv)

    {

    WEEKDAYS day = MONDYA;

    return 0;

    }

    展开全文
  • C语言枚举类型enum-总结
  • 枚举类型可以被赋值,但其赋值不同于普通变量,主要为以下两点:1. 非枚举类型值赋值给枚举类型>需要借助类型强制转换>举例:typedef enum{Monday = 1, //将枚举类型的第一个变量置为1, 则后面的依次为2, 3, 4...
  • C语言枚举类型深入讲解,超详细:enum经常使用的三种方法;枚举的本质;枚举和宏定义的对比分析;Linux内核中的枚举类型及使用技巧分析;使用枚举需要注意的一些细节,在这篇文档中都会详细讲解。
  • c语言枚举类型详解

    2016-01-02 11:51:11
    c语言枚举类型详解 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:   #define MON 1 #define TUE 2 #define WED 3 #define ...
  • C语言枚举类型(Enum)

    多人点赞 2018-10-18 19:59:32
    C语言枚举类型(Enum) 在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门...
  • C语言枚举类型简介

    多人点赞 2020-12-13 15:11:34
    枚举C语言中一种基本数据类型,它可以让数据简洁和易读 定义格式为: enum 枚举名{元素1,元素2}; 为什么要用枚举? #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #...
  • C语言枚举类型和函数枚举函数 枚举 介绍: 枚举是C语言中的一种构造类型数据; 枚举是一组常量的集合; 对于只有几个有限的特定数据,可以使用枚举,数据过多就不适合使用了; 定义格式: 方式一: 1)先定义枚举...
  • C语言 枚举类型

    2017-09-27 14:09:54
    枚举定义 enum 枚举名{ 枚举值表 }; 当然枚举和结构体有同样的命名方式 命名一个元素有限集,其中的元素称为枚举元(enumerator). # include &lt;stdio.h&gt;//引用函数库 # include &lt;stdlib.h&...
  • c语言枚举类型

    2016-07-22 01:31:08
    为什么使用枚举类型? 在一些程序中,有一些变量只有少数的几个有意义的值,例如:一个布尔变量只有两个值,真和假,又如:在游戏中用户的操作方向只有4个上下左右。 可以使用宏定义的方式来实现: #define ...
  • C语言枚举类型举例

    千次阅读 2013-07-27 17:29:34
    C语言枚举类型举例 注:以下全部代码的执行环境为VC++ 6.0 宏和枚举的区别 宏和枚举之间的差别主要在作用的时期和存储的形式不同,宏是在预处理的阶段进行替换工作的,它替换代码段的文本,程序运行的过程...
  • 走进并深刻的了解枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不...
  • 本节,我们看看对于枚举类型C语言编译器是如何解析的。我们使用下面的实例去实现语法解析和类型系统的建立:enum tag {a, b, c = 5, d} x;上面的枚举定义会被C编译器转义成下面的形式:enum tag; int x; int a = 0...
  • 枚举enum就是英文enumerate的缩写,也就是列举、排列说明的意思。枚举类型C语言中的一种特殊类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,604
精华内容 13,841
关键字:

c语言枚举类型定义

c语言 订阅