4.1 结构类型——枚举
来源:互联网 发布:内外网切换软件 编辑:程序博客网 时间:2024/05/17 09:00
1.枚举
枚举是一种用户定义的数据类型,关键字是 enum,语法是:
enum 枚举类型名字{名字0, … , 名字n};枚举类型名字 通常并不真的使用,用的是 大括号里边的名字(它们是常量符号,类型是 int,值依次是 0 到 n-1)
- enum colors{red, yellow, green};
- 创建了3个变量,red的值是0,yellow的值是1,green的值是2
- 当需要一些可以排列起来的常量值时,定义枚举的意义就是给这些常量值起个名字
#include<stdio.h>enum COLOR { RED, BLUE, GREEN};int main(int argc, char const *argv[]){ printf("请输入一个颜色:"); int color = -1; scanf("%d", &color); char *colorName = NULL; switch(color){ case RED: colorName = "Red"; // 输入 0,输出 Red break; case BLUE: colorName = "Blue"; break; case GREEN: colorName = "Green"; break; default: colorName = "Unknown"; break; } printf("你选择的颜色是:%s\n", colorName); return 0;}
2.自动计数的枚举
#include<stdio.h>enum COLOR{ RED, YELLOW, GREEN, ColorNums};int main(int argc, const char *argv[]){ int color = -1; // 枚举量与数组下标一一对应 char *colorNames[ColorNums] = { "red", "yellow", "green" }; char *colorName = NULL; printf("请出入颜色代码:"); scanf("%d", &color); if(color >= 0 && color < ColorNums){ colorName = colorNames[color]; // 输入0, 输出 red } else { colorName = "unknown"; } printf("你输入的颜色是:%s\n", colorName); return 0;}
3.枚举只是int
枚举量可以作为值
enum 枚举类型 可以作为类型
实际上内部计算和外部输入输出时 都是 整数
#include<stdio.h>enum color { red, yellow, green};void f(enum color c);int main(int argc, char const *argv[]){ enum color c = red; printf("请输入一个颜色:"); scanf("%d", &c); f(c); return 0;} void f(enum color c){ // 打印输入的数字,输入 0 输出 0。输入 5,输出 5 printf("%d\n", c);}
#include<stdio.h>enum COLOR { RED = 1, YELLOW, GREEN = 5, ColorNums};int main(int argc, const char *argv){ enum COLOR color = RED; printf("code for YELLOW is %d\n", YELLOW); // code for YELLOW is 2 printf("color is %d\n", color); // color is 1 printf("ColorNums is %d\n", ColorNums); // ColorNums is 6 return 0; }
4.总结
- 有意义上排比的名字,用枚举比 const int 方便
- 枚举比宏好,因为枚举有int类型
- 枚举类型虽然可以当做类型使用,但是很少用,不好用
0 0
- 4.1 结构类型——枚举
- 数据类型(基本内置类型)——枚举(枚举类型)、结构体(构造类型)、联合体(构造类型)
- 复杂的变量类型——枚举、结构、数组
- 自定义类型——结构体、枚举、联合
- 自定义类型——结构体,枚举,联合
- 枚举,结构类型
- 枚举和结构类型
- 结构类型和枚举类型
- MOOC——C语言11:结构类型:枚举,结构,联合
- 结构体类型-枚举类型-联合体类型
- 结构体和枚举类型
- C#—结构与枚举
- 2013级C++第1周(春)项目——枚举类型与结构体初步
- 黑马程序员--C语言——结构体和枚举类型
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
- Android For JNI(五)——C语言多级指针,结构体,联合体,枚举,自定义类型
- C语言热身——预处理指令、变量类型、static和extern、结构体、枚举
- 结构体类型与枚举类型
- 《Head first设计模式》学习笔记 – 策略模式
- C++用new和不用new创建对象区别
- Eclipse快捷插件:一键定位、打开文件所在目录
- Sql Sever 查询语句生成xml文件
- Android屏幕常亮两种方法
- 4.1 结构类型——枚举
- go语言易错点
- windows安装java并配置java环境变量
- eclipse中项目名称修改后部署到tomcat中应用名称仍然是旧的
- 启动hadoop时总是提示输入密码
- error while loading shared libraries
- 基于dragonboard410c 智能宠物保姆----预研
- Java实例学习 Java并发编程之java.util.concurrent.CopyOnWriteArrayList
- windows lib 引用