当前位置:首页 » 编程语言 » c语言枚举类型
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言枚举类型

发布时间: 2022-01-20 12:31:18

‘壹’ c语言中 ,枚举类型enum 的枚举值,可以是什么类型的值 一定是 int型吗

枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int

‘贰’ C语言枚举类型怎么用

枚举类型定义时,定义的是可以枚举的常量,常量符号的值在定义枚举时已经初始化完成。
有没有枚举变量都不影响已经存在的可枚举常量,
定义枚举变量将来也是要赋值某一枚举常量的。

比如:
WeekTypedef day=Monday;

‘叁’ c语言枚举用法

一、对枚举型的变量赋值。

实例将枚举类型的赋值与基本数据类型的赋值进行了对比:


方法1:先声明变量,再对变量赋值

#include<stdio.h>
/*定义枚举类型*/
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};
voidmain()
{
/*使用基本数据类型声明变量,然后对变量赋值*/
intx,y,z;
x=10;
y=20;
z=30;
/*使用枚举类型声明变量,再对枚举型变量赋值*/
enumDAYyesterday,today,tomorrow;
yesterday=MON;
today=TUE;
tomorrow=WED;
printf("%d%d%d ",yesterday,today,tomorrow);
}


方法2:声明变量的同时赋初值


#include<stdio.h>
/*定义枚举类型*/
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};
voidmain()
{
/*使用基本数据类型声明变量同时对变量赋初值*/
intx=10,y=20,z=30;
/*使用枚举类型声明变量同时对枚举型变量赋初值*/
enumDAYyesterday=MON,
today=TUE,
tomorrow=WED;
printf("%d%d%d ",yesterday,today,tomorrow);
}

方法3:定义类型的同时声明变量,然后对变量赋值。

#include<stdio.h>
/*定义枚举类型,同时声明该类型的三个变量,它们都为全局变量*/
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN}yesterday,today,tomorrow;
/*定义三个具有基本数据类型的变量,它们都为全局变量*/
intx,y,z;
voidmain()
{
/*对基本数据类型的变量赋值*/
x=10;y=20;z=30;
/*对枚举型的变量赋值*/
yesterday=MON;
today=TUE;
tomorrow=WED;
printf("%d%d%d ",x,y,z);//输出:102030
printf("%d%d%d ",yesterday,today,tomorrow);//输出:123
}

方法4:类型定义,变量声明,赋初值同时进行。

#include<stdio.h>
/*定义枚举类型,同时声明该类型的三个变量,并赋初值。它们都为全局变量*/
enumDAY
{
MON=1,
TUE,
WED,
THU,
FRI,
SAT,
SUN
}
yesterday=MON,today=TUE,tomorrow=WED;
/*定义三个具有基本数据类型的变量,并赋初值。它们都为全局变量*/
intx=10,y=20,z=30;
voidmain()
{
printf("%d%d%d ",x,y,z);//输出:102030
printf("%d%d%d ",yesterday,today,tomorrow);//输出:123
}

2、对枚举型的变量赋整数值时,需要进行类型转换。

#include<stdio.h>
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};
voidmain()
{
enumDAYyesterday,today,tomorrow;
yesterday=TUE;
today=(enumDAY)(yesterday+1);//类型转换
tomorrow=(enumDAY)30;//类型转换
//tomorrow=3;//错误
printf("%d%d%d ",yesterday,today,tomorrow);//输出:2330
}

3、使用枚举型变量

#include<stdio.h>
enum
{
BELL='a',
BACKSPACE='',
HTAB=' ',
RETURN=' ',
NEWLINE=' ',
VTAB='v',
SPACE=''
};
enumBOOLEAN{FALSE=0,TRUE}match_flag;
voidmain()
{
intindex=0;
intcount_of_letter=0;
intcount_of_space=0;
charstr[]="I'mElyefod";
match_flag=FALSE;
for(;str[index]!='';index++)
if(SPACE!=str[index])
count_of_letter++;
else
{
match_flag=(enumBOOLEAN)1;
count_of_space++;
}
printf("%s%dtimes%c",match_flag?"match":"notmatch",count_of_space,NEWLINE);
printf("countofletters:%d%c%c",count_of_letter,NEWLINE,RETURN);
}

‘肆’ C语言中的枚举类型有什么用么

枚举类型就相当于助记符,帮助程序员记忆的。
比如现在要画一张地图,用到红黄蓝绿四种颜色。为了存储方便,我们规定0=红,1=黄,2=蓝,3=绿。但是当编程到某一阶段时,程序员可能忘记了哪个数字具体对应哪种颜色,或者忘记了到底有多少个数字,这时他就要去查表,这样会耽误时间。此时就可以定义一个枚举类型enum color{Red,Yellow,Blue,Green},这样系统就会自动将0、1、2、3和这个枚举类型中的每个元素一一对应起来,程序员只需要记住"Red"、"Green"等单词即可,而且不会出现“4”之类的定义之外的数字。
但枚举类型使用起来也有很多限制,它是一种单独的数据类型,因此不能简单像数组那样操作,而且经常要用到类型转换,操作起来反而不方便。实际编程中很少使用。

‘伍’ c语言中枚举

你好!!!
枚举类型就是一种共同占有一段内存的数据类型,其成员的类型默认是int类型
即J,H,G只占一个int类型的空间大小;都是int 在c++中int占4个字节,

‘陆’ c语言枚举类型

答案是5没错啊。
赋值mon=3

后续依次加一。
于是tue=4
wed=5

赋值workday=wed也就是5. 输出自然是5.

‘柒’ c语言的枚举类型

enum类型定义,没有设定第一个标签的值,则默认为0,此后每个标签的值都是上一个的值+1。
自然,my=0
your显示赋值了,your=4
his没显示赋值,his=you+1=4+1=5
her显示赋值了,her=his+10=5+10=15

0 4 5 15

‘捌’ c语言中的枚举型什么意思

给出正确代码,自己做对比。#include<stdio.h>#define
m
100void
arrout(int
*,int);int
arrin(int
*);void
main()
//------->此处主函数类型为void{
int
s[m],k;
k=arrin(s);
arrout(s,k);}int
arrin(int
*a){
int
i,x;
i=0;
scanf("%d",&x);
while(x>0)
{
*(a+i)=x;
i++;
scanf("%d",&x);
}
return
i;}void
arrout(int
*a,int
n){
int
i;
for(i=0;i<n;i++)
{
printf(((i+1)%5==0)?
"%4d\n"
:
"%4d",*(a+i));
//----->三目运算格式错误,中间是冒号,少了个括号自己对比
printf("\n");
}}