枚举变量的定义
- 方式一
Step 1:声明枚举类型:格式:enum 枚举类型名{枚举值1,...,枚举值n}
如:enum Car_Type{BENZ,BWM,JEEP};
Step 2:定义枚举变量:格式:enum 枚举类型名 枚举变量1,枚举变量2,...,枚举变量n;
如:enum Car_Type my_car = BENZ,your_car = BWM;
# include <stdio.h>
int main(void)
{
enum Car_Type{BENZ,BWM,JEEP};
enum Car_Type my_car = BENZ,your_car = BWM;
printf("my_car:%d\n", my_car);
printf("your_car:%d\n", your_car);
printf("JEEP:%d\n", JEEP);
return 0;
}
以上程序输出:
my_car:0
your_car:1
JEEP:2
- 方式二
定义枚举变量:格式:enum 枚举类型名{枚举变量1,枚举变量2,...,枚举变量n} 枚举变量列表;
如:enum Car_Type{BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
# include <stdio.h>
int main(void)
{
enum Car_Type{BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
printf("my_car:%d\n", my_car);
printf("your_car:%d\n", your_car);
printf("JEEP:%d\n", JEEP);
return 0;
}
以上程序输出:
my_car:0
your_car:1
JEEP:2
- 方式三
定义枚举变量:格式:enum {枚举变量1,枚举变量2,...,枚举变量n} 枚举变量列表;
如:enum {BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
# include <stdio.h>
int main(void)
{
enum {BENZ,BWM,JEEP} my_car = BENZ, your_car = BWM;
printf("my_car:%d\n", my_car);
printf("your_car:%d\n", your_car);
printf("JEEP:%d\n", JEEP);
return 0;
}
以上程序输出:
my_car:0
your_car:1
JEEP:2
枚举类型的注意点
I. 声明枚举类型不分配内存空间
II. 在枚举值表{枚举值1,...,枚举值n}中应列出所有可用值,这些值也称为枚举元素。
III. 枚举类型也属于整型,枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2...。
IV. 在声明枚举类型的同时可以对枚举值赋值(只能赋整型数值或字符型数值,在C语言中,字符型可看做一种特别短的整型,传送门:C语言学习 - 字符型数据类型)
# include <stdio.h>
int main(void)
{
enum Car_Type{BENZ,BWM = 2,JEEP,AUDI = 8,PORSCHE};
enum Car_Type my_car = BENZ,your_car = BWM;
printf("my_car:%d\n", my_car);
printf("your_car:%d\n", your_car);
printf("JEEP:%d\n", JEEP);
printf("AUDI:%d\n", AUDI);
printf("PORSCHE:%d\n", PORSCHE);
return 0;
}
以上程序输出:
my_car:0
your_car:2
JEEP:3
AUDI:8
PORSCHE:9
注意:若某一枚举值没赋值,而其前面的枚举值赋值了,则按照其前面的枚举值+1后赋值,如:枚举值JEEP没有赋值,但是其前面的枚举值BWM赋值为了2,因此JEEP的值为3;同理枚举值PORSCHE没有赋值,但是其前面的枚举值AUDI赋值为了8,因此PORSCHE的值为9。
网友评论