枚举的含义
一组有共同特性的数据集合
枚举的表示
由关键字enum和枚举类型名称组成
枚举的规范
先声明枚举类型再定义枚举变量
enum DAY//先声明枚举类型
{
MON=1,TUE,WED,THU,FRI,SAT,SUN//枚举成员变量
};
enum DAY day;//再定义枚举变量
声明枚举类型的同时定义枚举变量
enum DAY//声明枚举类型
{
MON=1,TUE,WED,THU,FRI,SAT,SUN//枚举成员变量
}day;//定义枚举变量
不指定枚举类型名而直接定义枚举变量
enum//不指定枚举类型名
{
MON=1,TUE,WED,THU,FRI,SAT,SUN//枚举成员变量
}day;//定义枚举变量
用typedef定义枚举类型别名
第一种
typedef enum workday//声明枚举类型
{
saturday,
sunday = 0,
monday,
tuesday,
wednesday,
thursday,
friday
} workday;//用typedef定义枚举类型别名
workday today, tomorrow;//定义枚举变量
第二种文章来源:https://www.toymoban.com/news/detail-808660.html
typedef enum workday//声明枚举类型
{
saturday,
sunday = 0,
monday,
tuesday,
wednesday,
thursday,
friday
};//不定义枚举类型别名
workday today, tomorrow;//定义枚举变量
枚举变量的初始化
先声明枚举变量再赋值给枚举变量
#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN};//声明枚举类型
void main()//主函数
{
enum DAY yesterday, today, tomorrow;//声明枚举变量
yesterday = MON;//赋值给枚举变量 下同
today = TUE;
tomorrow = WED;
printf("%d %d %d \n", yesterday, today, tomorrow);
}
1
2
3
解释以上:由以上输出结果可知,枚举类型内第一个枚举成员变量的默认值为整型的0,如果第一个枚举成员变量设置了某值,那么以这个设置值为准,后续枚举成员变量的值在前一个枚举成员变量上加1。文章来源地址https://www.toymoban.com/news/detail-808660.html
声明枚举变量同时赋值给枚举变量
#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN};//声明枚举类型
void main()//主函数
{
enum DAY yesterday = MON, today = TUE,tomorrow = WED;//声明枚举变量同时赋值给枚举变量
printf("%d %d %d \n", yesterday, today, tomorrow);
}
1
2
3
声明枚举类型同时定义枚举变量再赋值给枚举变量
#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN}yesterday,today,tomorrow;//声明枚举类型同时定义枚举变量
void main()//主函数
{
yesterday = MON;//赋值给枚举变量 下同
today = TUE;
tomorrow = WED;
printf("%d %d %d \n", yesterday, today, tomorrow);
}
1
2
3
声明枚举类型定义枚举变量赋值给枚举变量同时进行
#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN}yesterday = MON,today = TUE,tomorrow = WED;//声明枚举类型定义枚举变量赋值给枚举变量同时进行
void main()//主函数
{
printf("%d %d %d \n", yesterday, today, tomorrow);
}
1
2
3
枚举的运用
将整数型转换为枚举型
#include <stdio.h>
#include <stdlib.h>
int main()
{
enum day//声明枚举类型
{
saturday,
sunday,
monday,
tuesday,
wednesday,
thursday,
friday
} workday;
int a = 1;
enum day weekend;//定义枚举变量
weekend = ( enum day ) a;//将整数型变量转换为枚举变量
//weekend = a; //错误
printf("weekend:%d",weekend);
return 0;
}
weekend:1
在Switch语句中使用
#include <stdio.h>
#include <stdlib.h>
int main()
{
enum color { red=1, green, blue };//声明枚举类型
enum color favorite_color;//定义枚举变量
/* 用户输入数字来选择颜色 */
printf("请输入你喜欢的颜色: (1.red, 2.green, 3.blue): ");
scanf("%u",&favorite_color);
/* 输出结果 */
switch (favorite_color)
{
case red:
printf("你喜欢的颜色是红色");
break;
case green:
printf("你喜欢的颜色是绿色");
break;
case blue:
printf("你喜欢的颜色是蓝色");
break;
default:
printf("你没有选择你喜欢的颜色");
}
return 0;
}
请输入你喜欢的颜色: (1.red,2.green,3.blue):1
你喜欢的颜色是红色
作为指针变量
计算字节大小
#include <stdio.h>
enum escapes//声明枚举类型
{
BELL = '\a',
BACKSPACE = '\b',
HTAB = '\t',
RETURN = '\r',
NEWLINE = '\n',
VTAB = '\v',
SPACE = ' '
};
enum BOOLEAN { FALSE = 0, TRUE } match_flag;//定义枚举变量
void main()
{
printf("%d bytes \n", sizeof(enum escapes));//4 bytes
printf("%d bytes \n", sizeof(escapes));//4 bytes
printf("%d bytes \n", sizeof(enum BOOLEAN));//4 bytes
printf("%d bytes \n", sizeof(BOOLEAN));//4 bytes
printf("%d bytes \n", sizeof(match_flag));//4 bytes
printf("%d bytes \n", sizeof(SPACE));//4 bytes
printf("%d bytes \n", sizeof(NEWLINE));//4 bytes
printf("%d bytes \n", sizeof(FALSE));//4 bytes
printf("%d bytes \n", sizeof(0));//4 bytes
}
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
到了这里,关于枚举的含义、表示、规范、运用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!