构造类型-枚举类型
2020-04-19 本文已影响0人
晓晓桑
作用:声明代表整数常量的名称。(就是给整数起个名)
目的:提高代码的可读性。
本质:一组有名字的int常数,默认是从0开始,依次递增赋值(0,1,2...)。
声明枚举类型:
类型声明和结构体一样:有名字,无名字
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
enum Color {
//名字不能重复
//默认值分别是0,1,2,3,4
//这些名字不是变量,他们只是一个名字
enum_red,
enum_black,
enum_white,
enum_blue,
enum_yellow
};
int main(void) {
//不需要定义变量 再.什么的,直接使用
printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//0,1,2,3,4
return 0;
}
指定枚举的范围
enum_red=20,后面依次递增
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
enum Color {
//默认值分别是0,1,2,3,4
enum_red=20,
enum_black,
enum_white,
enum_blue,
enum_yellow
};
int main(void) {
printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//20,21,22,23,24
return 0;
}
enum_white=20,前面取默认值,后面依次递增
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
enum Color {
//默认值分别是0,1,2,3,4
enum_red,
enum_black,
enum_white=20,
enum_blue,
enum_yellow
};
int main(void) {
//不需要定义变量 再.什么的,直接使用
printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//0,1,20,21,22
return 0;
}
各种指定值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
enum Color {
//默认值分别是0,1,2,3,4
enum_red=23,
enum_black=90,
enum_white=20,
enum_blue=44,
enum_yellow=56
};
int main(void) {
//不需要定义变量 再.什么的,直接使用
printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//23,90,20,44,56
return 0;
}
声明枚举变量
enum的大小是:4字节
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
enum Color {
//默认值分别是0,1,2,3,4
enum_red = 23,
enum_black = 90,
enum_white,
enum_blue = 44,
enum_yellow = 56
} color1;
int main(void) {
enum Color color = enum_red;
color = 2;
printf("%d", sizeof(enum Color));//4
return 0;
}