范文无忧网范文学习范文大全

C语言中关于枚举类型

03月24日 编辑 fanwen51.com

[c语言中的数组排序]#include #include int numSort(int *a,int count_num) { int i,j,min=-1,temp; for(j=count_num-1;j>0;j--) for(i=j-1;i>=0;i--) if(a[j] > a[i]) { temp=a[i]; a[i]=a[j]...+阅读

C语言中关于枚举类型

1.enum 枚举的定义

枚举类型定义的一般形式为:

enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。

例如:

该枚举名为weekday,枚举值共有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;3、枚举类型变量的赋值和使用

枚举类型在使用中有以下规定:

a. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。

例如对枚举weekday的元素再作以下赋值:

sun=5;

mon=2;

sun=mon;都是错误的。

b. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。

int main(){

enum weekday

{ sun,mon,tue,wed,thu,fri,sat } a,b,c;

a=sun;

b=mon;

c=tue;

printf("%d,%d,%d",a,b,c);

return 0;

}说明:

只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:

a=sum;

b=mon;是正确的。而:

a=0;

b=1;是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。

如:a=(enum weekday)2;

其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:

a=tue;

还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。

int main(){

enum body

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

int i;

j=a;

for(i=1;i<=30;i++){

month[i]=j;

j++;

if (j>d) j=a;

}

for(i=1;i<=30;i++){

switch(month[i])

{

case a:printf(" %2d %c\t",i,'a'); break;

case b:printf(" %2d %c\t",i,'b'); break;

case c:printf(" %2d %c\t",i,'c'); break;

case d:printf(" %2d %c\t",i,'d'); break;

default:break;

}

}

printf("\n");

return 0;

}

给个枚举类型的程序

#include

/* 定义枚举类型 */

enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };

void main()

{

/* 使用基本数据类型声明变量,然后对变量赋值 */

int x, y, z;

x = 10;

y = 20;

z = 30;

/* 使用枚举类型声明变量,再对枚举型变量赋值 */

enum DAY yesterday, today, tomorrow;

yesterday = MON;

today = TUE;

tomorrow = WED;

printf("%d %d %d \n", yesterday, today, tomorrow);

}

什么是c语言里面的枚举类型

枚举是用标识符表示的整型常数集合,这些常数是该类型变量可取的合法值,这些标识符称为枚举常量。

定义:enum<;枚举名>{<;标识符1>,<;标识符2>...<;标识符n>};

比如enum weekday{sun,mon,tue};

就表示定义了3个枚举型常量,默认他们的值是从0开始,依次递增,也就是sum=0,mon=1,tue=2

你也可以直接给他们赋值,比如enum weekday{sun=1,mon,tue};

如果这样的话mon的值就为2,tue的值就为3.

你也可以用其他变量代替枚举常量的值,比如

enum weekday{sun,mon,tue}a,b,c;

a=sun;

b=mon;

c=tue;

如果输出的话a=0,b=1,c=2

c语言解释一下枚举类型

如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺

次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次

加1的规则确定其值。

例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。

enum Num{x1, x2, x3, x4}x;

当定义改变成:

enum Num

{

x1,

x2=0,

x3=50,

x4

}x;

则x1=0, x2=0, x3=50, x4=51

注意:

1. 枚举中每个成员(标识符)结束符是",", 不是";", 最后一个成员可省略

","。

2. 初始化时可以赋负数, 以后的标识符仍依次加1。

3. 枚举变量只能取枚举说明结构中的某个标识符常量。

例如:

enum Num

{

x1=5,

x2,

x3,

x4

};

enum Num x=x3;

此时, 枚举变量x实际上是7。

延伸阅读:

C语言中数组的排序方法中选择排序的原理是,每次从待排序数字中挑选出最大(最小)数字,放在有序序列的末尾。实际操作中,只需要在这个数组中将挑出来的数字与前面的数字交换即可。 例如: 4 1 5 2 3 找到最小...

关于C语言的问题实型变量分为两类:单精度型和双精度型, 其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能...

软件开发需要学会什么技术 VB C语言 C语言还有什么啊首先、你什么都别问,问多了,反而迷茫,不知所措,你现在就开始学习C或C++,相信我!不相信的话,你问过,他们还是让你开始学C,你在学的过程中,你会找到自己的方向,你会知道,你改干什么? 补充一...

没学过C语言可以学C语言数据结构与算法吗你好 一点小建议希望能对你有帮助 (1)学算法 学习算法和具体的语言还是有一定的联系,比如说你的算法最后要用c语言来实现,因为c是面向过程的,所以这和用面向对象的语言如c++来实...

C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...

C语言中逻辑运算符的规则是什么逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式。逻辑运算符有4个,它们分别是: !(逻辑非)、 ||(逻辑或)、&(逻辑与) ^(异或)。在位运算里面还有 &(位与)、|(位或)的运算。什...

关于c语言题目关于c语言题目,c语言的简单题目:这个程序的意图是这样的: 开始-----while (*str && *str!=ch) str++;(解释:判断指针str是否为空,同时如果指针str指向的内容!=ch时,指针往下走一个,直...

C语言中运算符优先级排序C语言中运算符优先级排序,C语言中算术运算符的优先级是高于还是低于赋值运算符:1级优先级 左结合() 圆括号 [] 下标运算符 ->指向结构体成员运算符 . 结构体成员运算符 2级优先...

c语言中的extern怎么用c语言中的extern怎么用,C语言中extern的用法:extern在c中就是个外部申明,因为C是先申明再使用,当你想调用的变量或者函数不在你的模块当中,你可以使用外部申明。在使用外部申明的...

推荐阅读
图文推荐
栏目列表