您的位置:首页 > 编程语言 > C语言/C++

c语言的枚举类型

2017-08-18 11:00 155 查看
       今天发现对C语言中的枚举类型不熟悉,在学校的时候仅仅是知道有这个类型,但今天看公司大神写的代码里把枚举类型用得贼溜。而我还是菜鸟看不懂,只好重拾以前的课本,再好好专研枚举类型的用法。

       如果一个变量只有几种可能的值,可以定义为枚举类型,所谓的“枚举”就是把可能的值一一罗列出来,但是变量的值只限于罗列出来的值得范围内。

声明枚举类型用enum开头。例如

 enum Weekday{sum,mon,tue,wed,thu,fri,sat};

     也可以不声明有名字的枚举类型,而直接定义枚举变量,例如:

 enum{sun,mon,tue,wed,thu,fri,sat} workday,weekend;

      可以用枚举类型来定义枚举变量,枚举变量的取值仅限于枚举类型所罗列的值;例如

enum Weekday(枚举类型)      workday,weekend(枚举变量);

      workday和weekend被定义为枚举变量,花括号中的sum,mon,...,sat称为枚举元素或枚 举常量。枚举变量workday和weekend的取值只能是sun到sat之间。

  workday=mon;//正确

  weekend=sun;//正确

   weekend=monday;//错误,monday不是指定的枚举元素之一。

说明:

(1)C编译对枚举类型的枚举元素是按常量处理,故称枚举变量。因此不能对枚举元素赋值。

(2)枚举元素本身由系统本身定义了一个表示序号的数值,从0开始顺序定义为0,1,2,3,4.......等。

(3)只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:

  workday=mon;//正确

    workday=1;//错误

(4)如一定要把数值赋予枚举变量,则必须用强制类型转换。 如:

  workday=(enum weekend)1;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: