C05枚举

来源:互联网 发布:大数据课程视频教程 编辑:程序博客网 时间:2024/06/14 01:25

一、 枚举是什么?

枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。

二、 枚举有什么用?

1.用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型2.有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值

三、 枚举怎么用?

1.一般类型 定义形式:先定义枚举类型,再定义枚举变量enum 枚举类型名{标识符1,标识符2,……,标识符n};例如  enum colorname{red,yellow,blue,white,black};  enum colorname color;2.定义枚举类型的同时定义枚举变量 enum colorname{red,yellow,blue,white,black} color;3.省略枚举名称,直接定义枚举变量 enum {red,yellow,blue,white,black} color;说明:变量color是枚举类型enum colorname,它的值只能是red,yellow,blue,white或black

四、 使用枚举要注意什么?

1.enum是关键字,标识枚举类型,定义枚举类型必须以enum开头2.在定义枚举类型时花括号中的名字称为枚举元素或枚举常量3.枚举元素不是变量,不能改变其值4.枚举常量可以进行比较5.一个枚举变量的值只能是这几个枚举常量之一,可以将枚举常量赋给一个枚举变量。但不能将一个整数赋给它6.枚举常量不是字符串

五、 枚举代码举例

  • 例1 利用枚举遍历输出五种颜色
int main(){  enum colorname{red,yellow,blue,white,black};   enum colorname color;   for(color=red;color<black;color++)     switch(color)    {  case red:printf(″red″);break;       case yellow:printf(″yellow″);break;       case blue:printf(″blue″);break;       case white:printf(″white″);break;       case black:printf(″black″);break;    }    return 0;}
  • 例2 两个枚举类型综合使用
#include<stdio.h>enum Season {     spring, summer=100, fall=96,winter //在定义枚举类型时改变枚举元素的值}; typedef enum  //类型重定义{     Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }  Weekday;  void main() {     /* Season */      printf("%d \n", spring); // 0      printf("%d, %c \n", summer, summer); // 100, d     printf("%d \n", fall+winter); // 193     Season mySeason=winter;      if(winter==mySeason)          printf("mySeason is winter \n"); // mySeason is winter      int x=100;     if(x==summer)         printf("x is equal to summer\n"); // x is equal to summer      printf("%d bytes\n", sizeof(spring)); // 4 bytes      /* Weekday */     printf("sizeof Weekday is: %d \n", sizeof(Weekday)); //sizeof Weekday is: 4      Weekday today = Saturday;     Weekday tomorrow;     if(today == Monday)           tomorrow = Tuesday;      else          tomorrow = (Weekday) (today + 1); //转换}

六、 枚举总结

1. C语言编译器会将枚举元素(red,yellow,blue,white,black)作为整型常量处理,称为枚举常量。 2. 枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1。   enum colorname{red,yellow,blue,white,black};即red的值为0,yellow的值为1,blue的值为2,white的值为3 ,black的值为43.也可以在定义枚举类型时改变枚举元素的值   enum colorname{red,yellow=3,blue,white,black};没有指定值的枚举元素,其值为前一元素加1。即red的值为0,yellow的值为3,blue的值为4,white的值为5 ,black的值为64.同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量。
0 0
原创粉丝点击