枚举类型enum用法

枚举类型enum用法,第1张

枚举类型enum的用法如下文所示:

枚举enum就是英文enumerate的缩写,也就是呢列举、排列说明的意思。枚举类型是C语言中的一种特殊类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。定义枚举类型:enum 枚举类型 {枚举值列表};

1、定义枚举类型

2、如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值

例如:

enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;

这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 sat 就是 6 了。

3、枚举值可以用来作判断

例如:

if (day==month) {…}

if (day>month) {…}

枚举值的比较规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第一个枚举元素的值认作 0。

4、一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值

1110 枚举类型

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。

11101 枚举类型的定义和枚举变量的说明

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

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;

11102 枚举类型变量的赋值和使用

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

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

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

sun=5;

mon=2;

sun=mon;

都是错误的。

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

例1110

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);

}

说明:

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

a=sum;

b=mon;

是正确的。而:

a=0;

b=1;

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

如:

a=(enum weekday)2;

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

a=tue;

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

例1111

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");

}

问题一:枚举是什么意思? 枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的 。举个例子,颜色也可以定义成枚举类型,它可以包含你定义的任何颜色,当需丁的时候,只需要通过枚举调用即可,另外比如说季节(春夏秋冬)、星期(星期一到星期日)等等这些具有共同投特征的数据都可以定义枚举。

问题二:枚举类型是什么意思 一般的定义方式如下:

enum enum_type_name

{

ENUM_CONST_1,

ENUM_CONST_2,

ENUM_CONST_n

} enum_variable_name;

注意:enum_type_name 是自定义的一种数据数据类型名,而enum_variable_name 为

enum_type_name类型的一个变量,也就是我们平时常说的枚举变量。实际上enum_type_name

类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name 类型

的变量enum_variable_name 只能取值为花括号内的任何一个值,如果赋给该类型变量的值

不在列表中,则会报错或者警告。ENUM_CONST_1、ENUM_CONST_2、、

ENUM_CONST_n,这些成员都是常量,也就是我们平时所说的枚举常量(常量一般用大写)。

enum 变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始

依次加1,如果都没有赋值,它们的值从0 开始依次递增1。

下面举个例子:如分别用一个常数表示不同颜

enum Color

{

GREEN = 1,

RED,

BLUE,

GREEN_RED骸= 10,

GREEN_BLUE

}ColorVal;

其中各常量名代表的数值分别为:

GREEN = 1

RED = 2

BLUE = 3

GREEN_RED = 10

GREEN_BLUE = 11

内容应该说的差不多了。

问题三:枚举是什么意思 “枚举窗口”、“枚举进程”之类的词中,枚举的意思就是遍历列举。这两个词也就是列举出所有的窗口场所有运行的进程的意思。作为一种数据结构,枚举用一组标识符来表示常数。

问题四:什么是枚举???? 枚举

1枚举 (enumeration)

值类型的一种特殊形式,它从 SystemEnum 继承,并为基础基元类型的值提供备用名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数类型(如 Byte、Int32 或 UInt64)。字段是静态文本字段,其中的每一个字段都表示常龚。所使用的语言给每个字段都分配一个基础类型的特定值。

2枚举(enum)

枚举是一个被命名的整型常数的 , 枚举在日常生活中很常见。

例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,

SATURDAY, 就是一个枚举。

枚举的说明与结构和联合相似, 其形式为:

enum 枚举名{

标识符[=整型常数],

标识符[=整型常数],

标识符[=整型常数],

} 枚举变量;

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

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

加1的规则确定其值。

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

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

当定义改变成:

enum string

{

x1,

x2=0,

x3=50,

x4,

}x;

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

注意:

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

,。

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

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

例如:

enum string

{

x1=5,

x2,

x3,

x4,

};

enum strig x=x3;

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

3枚举(pascal)

随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。 在其它程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。

问题五:java中枚举用来干什么的? 枚举是该类型的一个实例,相当于static final 类型的变量,可用于switch中,

枚举类:package goldentest;public enum Operation { /增/ INSERT, /删/ DELETE, /改/ UPDATE, /查/ QUERY}测试类package goldentest;public class TestEnum { public static void main(String[] args) { Systemoutprintln(OperationDELETE); Systemoutprintln(OperationvalueOf(DELETE)); Systemoutprintln(OperationvalueOf(DELETE)==OperationDELETE); Systemoutprintln(DELETEequals(OperationDELETEtoString())); switch (OperationDELETE) { case INSERT: /TODO/break; case DELETE: /TODO/Systemoutprintln(DELETE);break; case UPDATE:/TODO/break; case QUERY: /TODO/break; default: break; } }}

问题六:枚举值是什么意思 一、类型定义 类型定义的语法格式: type =; =; …… =; 二、枚举类型 通过预定义列出所有值的标识符来定义一个有序 ,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:(标识符1,……,标识符n) 例如: type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday) 枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的: type daystype=('sun','mon','tue','wed','thu','fri','sat') 枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的: type daytype1=(monday,tuesday); daytype2=(monday,wednesday); 可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday) 枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始 例如:已经定义daystype ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday 但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。 例如:枚举值的输出 case day of sunday:write('sunday'); monday:write('monday'); tuesday:write('tuesday'); wednesday:write('wednesday'); thursday:write('thursday'); friday:write('friday'); saturday:write(功saturday'); end; 三、子界类型 子界类型是由整型、字符型、枚举型、布尔型的两个常量指定该类型的值域区间。子界类型的形式: 常量..常量 两个常量必须是同一种顺序类型。例如:a..b,要求a>

问题七:枚举是什么意思 一个一个数

问题八:c语言中的枚举型什么意思 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。声明枚举类型用enum开头。

例如

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

上面声明了一个枚举类型weekday,花括号中sun,mon,…,sat等称为枚举元素或枚举常量。

表示这个类型的变量的值只能是以上7个值之一。它们是用户自己定义的标识符。

问题九:到底什么叫做“枚举数” 枚举是一个被命名的整型常数的 , 枚举在日常生活中很常见。

例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 就是一个枚举。

枚举的说明与结构和联合相似, 其形式为:

enum 枚举名

{

标识符[=整型常数],

标识符[=整型常数],

标识符[=整型常数]

}

枚举变量;

如果枚举没有初始化, 即省掉=整型常数时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, 。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。

如定义:

public enum DayOfWeek

{

Monday = 1,

……

Sunday = 7

}

数组可以被foreach语句遍历数组中的元素,原因是数组可以按需提供一个叫做枚举数(enumerator)的对象.枚举数可以依次返回请求的数组的元素.

对于有枚举数的类型而言,必须有一个方法来获取它们.在NET中获取一个对象枚举数的标准用法是调用对象的GetEnumerator方法实现GetEnumerator方法的类型叫做可枚举类型(enumerable),数组就是可枚举类型

要注意枚举数(enumerator)和可枚举类型(enumerable)的区别和联系

枚举数是可以依次返回集合项的类对象,可枚举类型是带有GetEnumerator方法的类型,它返回枚举数

当foreach被用来遍历可枚举类型时,它就会执行如下的行为:

1,通过调用GetEnumerator方法获取对象的枚举数

2,从枚举数中请求每一项并且把它作为迭代变量,代码可以读但不可以改变

枚举数共有3种,可以用以下方式来实现枚举数:

1 IEnumerator/IEnumerable接口 ,叫做非泛型接口形式

2 IEnumerator<T>/IEnumerable<T>接口, 叫做泛型接口形式

3 不使用接口形式

IEnumerator接口

IEnumerator接口包含3个函数成员:Current,MoveNext,Reset

Current返回序列中当前项的属性,它是一个只读属性返回object类型的引用,所以可以返回任何类型

MoveNext是把枚举数位置前进到集合的下一项的方法,它返回布尔值,指示新位置是有效位置还是已经超过了序列的尾部如果是已经到达了尾部,则返回false

Reset方法把位置重置为原始状态

DEV-CPP 54 纯C语言环境,通过编译和测试

#include<stdioh>

int fun(int a[],const int n){

int i,j,k,t=n;

for(i=0;i<n;i++){

for(k=0;k<i;k++) if(a[k]==a[i]) goto sss;

for(j=0;j<n;j++){

if(j==i) continue;

if(a[i]==a[j]){

t--;

}

}

sss:;

}

return t;

}

int main(){

int n,a[128],i;

scanf("%d",&n);

for(i=0;i<n;i++) scanf("%d",&a[i]);

printf("%d",fun(a,n));

return 0;

}

以上就是关于枚举类型enum用法全部的内容,包括:枚举类型enum用法、enum在c语言中怎么用、枚举是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9456050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存