3.1 枚举
3.2 结构
3.3 类型定义
3.1 枚举
枚举是一种用户定义的数据类型,它用关键字enum以如下语法来表明:
enum 枚举类型名字{名字0,...,名字n};
枚举类型名字通常并不真的使用,要用的是在大括号里的名字,因为它们就是常量符号,它们的类型是int,值则依次从0到n。如:
enum colors{red, yellow, green};
就创建了三个常量,red的值是0,yellow的值是1,而green的值是2
当需要一些可以排列起来的常量值时,定义枚举的意义就是给了这些常量值的名字
套路:自动计数的枚举
这样需要遍历所有的枚举量或者需要建立一个用枚举量做下标的数组的时候就很方便了
1 #define _CRT_SECURE_NO_WARNINGS 2 3 #include <stdio.h> 4 5 enum colors 6 { 7 red, yellow, green, numcolors//枚举的套路,最后一个放颜色的数量 8 }; 9 10 main() 11 { 12 int color = -1; 13 char *colorsnames[numcolors] = { "red","yellow","green" }; 14 char *colorname = NULL; 15 16 printf("输入你喜欢的颜色的代码:"); 17 scanf("%d", &color); 18 19 if (color >= 0 && color < numcolors) 20 { 21 colorname = colorsnames[color]; 22 } 23 else 24 { 25 colorname = "unknown"; 26 } 27 28 printf("你喜欢的颜色是%s\n", colorname); 29 30 system("pause"); 31 }
枚举量
声明枚举量的时候可以指定值
1 enum colors 2 { 3 red = 1, yellow, green = 5 4 };
枚举只是int
即使给枚举类型的变量赋不存在的整数值也没有任何warning或error
虽然枚举类型可以当作类型使用,但是实际上很(bu)少(hao)用
如果有意义上排比的名字,用枚举比const int方便
枚举比宏(macro)好,因为枚举有int类型
3.2 结构
3.3 类型定义
时间: 2024-10-23 14:16:55