首页 > 编程知识 正文

c语言malloc函数用法,c语言枚举是什么意思

时间:2023-05-05 15:23:10 阅读:126896 作者:1754

枚举型相当于助记符,帮助程序员记忆。 例如,现在画地图。 使用红黄蓝绿4种颜色。 为了便于存储,假设0=红,1=黄,2=蓝,3=绿。 但是,编程到某个阶段的话,程序员可能会忘记哪个数字具体对应于哪个颜色,或者会忘记有多少个数字。 那种情况下,他必须查表,时间会慢。 此时,可以定义枚举类型enum color{Red,Yellow,Blue,Green}。 这将自动将0、1、2、3与枚举类型的元素相关联。 程序员只要记住“Red”、“Green”等单词即可,不会出现“4”的单词,下面介绍c语言枚举型的使用方法。

c语言枚举类型的使用方法如下。

1 .枚举的定义枚举类型定义的一般形式如下。

枚举枚举名称{枚举值表}; 必须列出枚举值表中的所有可用值。 这些值也称为枚举元素。

例如,枚举的名称为weekday,枚举值共有7个,即一周中的7天。 7天中只有一天被描述为weekday类型变量。

2 .枚举变量的说明就像结构和联合一样,枚举变量也可以用不同的方法说明。 也就是说,先定义再说明,同时定义说明,或者直接说明。

变量a、b、c被说明为上述weekday,可以采用以下方式之一。

enum weekday{ sun,mou,tue,wed,thu,fri,sat };

enum weekday a、b、c;

或者,enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;

或者enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;

枚举类型有以下规定:1.枚举值是常量,而不是变量。 程序中不能使用赋值语句赋值。

例如,在枚举weekday的元素中,sun=5; mon=2; sun=mon; 错了。

2 .枚举元素本身由系统定义,表示编号的数值从0开始依次定义为0、1、2…。 对于weekday,sun值为0,mon值为1,…,sat值为6。

【例11.10】

main () EnumWeekday ) sun,mon,tue,wed,thu,fri,sat } a,b,c; a=sun; b=mon; c=tue; printf('%d、%d、%d '、a、b、c ); }

说明:枚举值只能提供给枚举变量,元素的数值不能直接提供给枚举变量。

例如,a=sum; b=mon; 是正确的。 另一方面,a=0; b=1; 错了。 要为枚举变量赋予数值,必须使用强制类型转换。

例如,a=(EnumWeekday ) 2; 其含义是向枚举变量a赋予序列号为2的枚举元素,a=tue;

枚举元素既不是字符常数,也不是字符串常数,因此请不要使用单引号或双引号。

[ c-sharp ]视图平面

//此代码不能在VS中编辑,枚举类型不能进行自递增操作

//gcc上说可以编辑,但我没有尝试过

主()。

枚举主体

{a,b,c,d}month[31],j;

inti;

j=a;

for(I=1; i=30; I ) {

month[i]=j;

j; //vs时出错

if(JD ) j=a;

}

for(I=1; i=30; I ) {

(开关(month [ I ] ) ) ) ) ) ) ) ) ) )。

{

CASEA:printf('-%c/t ',I,' a ' ); 布雷克;

caseb3360printf(-%c/t )、I、(b ); 布雷克;

casec:printf(-%c/t )、I、(c ); 布雷克;

cased:printf('-%c/t ',I,' d ' ); 布雷克;

默认: break;

}

}

打印()/n );

}

要使用VS进行编译,请参阅以下代码。

[ c-sharp ]视图平面

枚举主体

{a,b,c,d}month[31],j;

inti;

j=a;

for(I=1; i=30; I )

{

month[i]=j;

j=(enumbody ) ) j 1; //这样改就可以了,强制切换

if(JD ) j=a;

}

for(I=1; i=30; I )

{

(开关(month [ I ] ) ) ) ) ) ) ) ) ) )。

{

CASEA:printf('-%c/t ',I,' a ' ); 布雷克;

caseb3360printf(-%c/t )、I、(b ); 布雷克;

casec:printf(-%c/t )、I、(c ); 布雷克;

cased:printf('-%c/t ',I,' d ' ); 布雷克;

默认: break;

}

}

打印()/n );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。