美文网首页
枚举类型是否可以赋值?

枚举类型是否可以赋值?

作者: 书白先生 | 来源:发表于2018-03-23 18:38 被阅读0次

    枚举类型可以被赋值,但其赋值不同于普通变量,主要为以下两点:

    1. 非枚举类型值赋值给枚举类型

    >需要借助类型强制转换

    >举例:

    typedef enum

    {

    Monday = 1,    //将枚举类型的第一个变量置为1, 则后面的依次为2, 3, 4, 5

    Tuesday,

    Wednesday,

    Thursday,

    Friday

    }Weekday;

    Weekday Working;

    unsigned char day;

    day = 2;

    Working = day;    //错误

    Working = 2;        //错误

    Working = (Weekday)day;    //正确. 即将Working置为序号为2的常量,也即Working =  Tuesday

                                                     //(注: 此处强制类型转换需要用定义的枚举类型Weekday,而不是枚 

                                                     //举类型定义的变量Working)

    Working = (Weekday)2;      //正确. 

    2. 枚举类型值赋值给枚举类型

    >举例:

    typedef enum

    {

    Monday = 1,    //将枚举类型的第一个变量置为1, 则后面的依次为2, 3, 4, 5

    Tuesday,

    Wednesday,

    Thursday,

    Friday

    }Weekday;

    Weekday Working;

    Working = Wednesday;    //正确

    总结:枚举变量由其中的枚举元素构成,每个枚举元素的值(枚举值)是常量,只能把枚举值赋予枚举变量。同时枚举类型是一种基本数据类型,可以通过类型强制转换将其他类型的变量赋值给枚举类型。


    参考链接:

    1. enum类型变量的使用和赋值 - CSDN博客 https://blog.csdn.net/maochengtao/article/details/46606853

    相关文章

      网友评论

          本文标题:枚举类型是否可以赋值?

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