美文网首页
C语言学习 - 枚举型数据类型

C语言学习 - 枚举型数据类型

作者: Hyso | 来源:发表于2019-02-21 13:56 被阅读0次
    枚举变量的定义
    • 方式一
      Step 1:声明枚举类型:格式:enum 枚举类型名{枚举值1,...,枚举值n}
      如:enum Car_Type{BENZ,BWM,JEEP};
      Step 2:定义枚举变量:格式:enum 枚举类型名 枚举变量1,枚举变量2,...,枚举变量n;
      如:enum Car_Type my_car = BENZ,your_car = BWM;
    # include <stdio.h>
    
    int main(void)
    {
        enum Car_Type{BENZ,BWM,JEEP};
        enum Car_Type my_car = BENZ,your_car = BWM;
    
        printf("my_car:%d\n", my_car);
        printf("your_car:%d\n", your_car);
        printf("JEEP:%d\n", JEEP);
    
        return 0;
    }
    

    以上程序输出:

    my_car:0
    your_car:1
    JEEP:2
    
    • 方式二
      定义枚举变量:格式:enum 枚举类型名{枚举变量1,枚举变量2,...,枚举变量n} 枚举变量列表;
      如:enum Car_Type{BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
    # include <stdio.h>
    
    int main(void)
    {
        enum Car_Type{BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
    
        printf("my_car:%d\n", my_car);
        printf("your_car:%d\n", your_car);
        printf("JEEP:%d\n", JEEP);
    
        return 0;
    }
    

    以上程序输出:

    my_car:0
    your_car:1
    JEEP:2
    
    • 方式三
      定义枚举变量:格式:enum {枚举变量1,枚举变量2,...,枚举变量n} 枚举变量列表;
      如:enum {BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
    # include <stdio.h>
    
    int main(void)
    {
        enum {BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
    
        printf("my_car:%d\n", my_car);
        printf("your_car:%d\n", your_car);
        printf("JEEP:%d\n", JEEP);
    
        return 0;
    }
    

    以上程序输出:

    my_car:0
    your_car:1
    JEEP:2
    
    枚举类型的注意点

    I. 声明枚举类型不分配内存空间
    II. 在枚举值表{枚举值1,...,枚举值n}中应列出所有可用值,这些值也称为枚举元素。
    III. 枚举类型也属于整型,枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2...。
    IV. 在声明枚举类型的同时可以对枚举值赋值(只能赋整型数值或字符型数值,在C语言中,字符型可看做一种特别短的整型,传送门:C语言学习 - 字符型数据类型

    # include <stdio.h>
    
    int main(void)
    {
        enum Car_Type{BENZ,BWM = 2,JEEP,AUDI = 8,PORSCHE};
        enum Car_Type my_car = BENZ,your_car = BWM;
    
        printf("my_car:%d\n", my_car);
        printf("your_car:%d\n", your_car);
        printf("JEEP:%d\n", JEEP);
        printf("AUDI:%d\n", AUDI);
        printf("PORSCHE:%d\n", PORSCHE);
    
        return 0;
    }
    

    以上程序输出:

    my_car:0
    your_car:2
    JEEP:3
    AUDI:8
    PORSCHE:9
    

    注意:若某一枚举值没赋值,而其前面的枚举值赋值了,则按照其前面的枚举值+1后赋值,如:枚举值JEEP没有赋值,但是其前面的枚举值BWM赋值为了2,因此JEEP的值为3;同理枚举值PORSCHE没有赋值,但是其前面的枚举值AUDI赋值为了8,因此PORSCHE的值为9。

    相关文章

      网友评论

          本文标题:C语言学习 - 枚举型数据类型

          本文链接:https://www.haomeiwen.com/subject/znxryqtx.html