当前位置:首页 » 编程语言 » 枚举c语言

枚举c语言

发布时间: 2023-02-19 13:26:20

A. c语言枚举类型enum用法

c语言枚举类型enum用法如下:


(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。


(2)DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。


(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。在当前值没有赋值的情况下,枚举类型的当前值总是前一个值+1.


(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。


(5) 枚举型是预处理指令#define的替代。


(6) 类型定义以分号;结束。

typeName是枚举类型的名字,花括号里面的元素(枚举成员)是常量而不是变量,这个一定要搞清楚,因为枚举成员的是常量,所以不能对它们赋值,只能将它们的值赋给其他的变量。


枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。

B. C语言枚举类型是什么意思

枚举类型C语言或C++的一种构造类型,它用于声明一组命名的常数。 x0dx0a(1)枚举的声明:枚举声明用于声明新的枚举类型。 x0dx0a访问修辞符 enum 枚举名:基础类型 x0dx0a{ x0dx0a枚举成员 x0dx0a} ;x0dx0a基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。 x0dx0a(2)枚举成员 x0dx0a枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。 x0dx0a示例: x0dx0apublic enum TimeofDay:uint x0dx0a{ x0dx0aMorning=-3, x0dx0aAfternoon=-2, x0dx0aEvening=-1 x0dx0a} ;x0dx0a产生编译时错误,原因是常数值 -1、-2 和 _3 不在基础整型 uint 的范围内。 x0dx0a(3)枚举成员默认值 x0dx0a在枚举类型中声明的第一个枚举成员它的默值为零。 x0dx0a以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。 x0dx0a示例: x0dx0apublic enum TimeofDay:uint x0dx0a{ x0dx0aMorning, x0dx0aAfternoon, x0dx0aEvening x0dx0a} ;x0dx0aMorning的值为0,Afternoon的值为1,Evening的值为2。 x0dx0a(4)为枚举成员显示赋值 x0dx0a允许多个枚举成员有相同的值. x0dx0a没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1. x0dx0a示例 x0dx0apublic enum Number x0dx0a{ x0dx0aa=1, x0dx0ab, x0dx0ac=1, x0dx0ad x0dx0a} ;x0dx0ab的值为2,d的值为2. x0dx0a注意:以上枚举值都不能超过它的基础类型范围。否则会报错. x0dx0a(5)枚举类型与基础类型的转换 x0dx0a基础类型不能隐式转换为枚举类型 x0dx0a枚举类型也不能隐式转换为基础类型 x0dx0a示例: x0dx0apublic enum Number x0dx0a{ x0dx0aa, x0dx0ab, x0dx0ac, x0dx0ad x0dx0a} ;x0dx0aclass Test x0dx0a{ x0dx0apublic static void Main() x0dx0a{ x0dx0aint i=Number.a;//错误,要强制类型转换(int)Number.a x0dx0aNumber n; x0dx0an=2 //错误,要强制类型转换(Number)2 x0dx0a} x0dx0a} x0dx0a(6)System.Enum类型 x0dx0aSystem.Enum 类型是所有枚举类型的抽象基类,并且从 System.Enum 继承的成员在任何枚举类型中都可用。 x0dx0aSystem.Enum 本身不是枚举类型。相反,它是一个类类型,所有枚举类型都是从它派生的。 x0dx0aSystem.Enum 从类型 System.ValueType派生 x0dx0a(7)使用枚举类型 x0dx0ausing System; x0dx0apublic enum TimeofDay x0dx0a{ x0dx0aMorning, x0dx0aAfternoon, x0dx0aEvening x0dx0a} ;x0dx0aclass Test x0dx0a{ x0dx0astatic void WriteGreeting(TimeofDay timeofDay) x0dx0a{ x0dx0aswitch(timeofDay) x0dx0a{ x0dx0acase TimeofDay.Morning: x0dx0aConsole.WriteLine("good morning"); x0dx0abreak; x0dx0acase TimeofDay.Afternoon: x0dx0aConsole.WriteLine("good afternoon"); x0dx0abreak; x0dx0acase TimeofDay.Evening: x0dx0aConsole.WriteLine("good evening"); x0dx0abreak; x0dx0a} x0dx0a} x0dx0astatic void Main() x0dx0a{ x0dx0aWriteGreeting(TimeofDay.Morning); x0dx0aWriteGreeting(TimeofDay.Evening); x0dx0aWriteGreeting(TimeofDay.Afternoon); x0dx0a} x0dx0a}

C. C语言枚举类型是什么意思

就是你声明的这个枚举变量的值,只能取其中的东西,比如:enum {Monday,Tuesday,Wednesday,Thursday,Friday} weekday;那weekday这个变脸的值只能是{}中的值。(他们分别对应数字0,1,2,3,4,因为枚举型变量也是整型)

D. enum在c语言中是什么意思

enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。

C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。

例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。

数据类型关键字

short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)

long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的初始且唯一的方式。(C99标准新增)

E. 谁能给我讲讲C语言中的枚举是什么意思啊!

枚举类型可以理解为一个集合,枚举成员是集合内的一些带有名字的整型常量,成员之间用逗号隔开。枚举的名字可有可无,只是一个标识。枚举中,
第一个枚举成员默认值为整型的0,后续枚举成员的值在前一个成员上加1。当然也可以人为设定枚举成员的初始值。例如enum
person
{
man,
women};
enum
person
{
man=1,
women};
通常用枚举来列举一些有限数量的变量,也就是可列举的变量,例如一周七天,就可以用枚举实现。

F. C语言中的枚举类型

如果一个变量只有几种可能的值,则可以定义为 枚举类型 。所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
声明枚举类型用 enum 开头。例如:

声明了一个枚举类型enum weekday,则可以用此类型来定义变量。例如:

也可以直接定义枚举变量,例如:

其中sun、mon、…、sat称为 枚举元素 枚举常量
说明:
1、在C编译中,对枚举元素按常量处理,故称为 枚举常量 。它们不是变量,不能进行赋值。例如 sun = 7; mon = 1; 是错误的。
2、枚举元素作为常量,是有值的。C语言编译按定义时的顺序使它们的值为0、1、2……也可以在定义时,指定枚举元素的值,例如:

3、枚举值可以用来作判断比较。例如:

4、一个证书不能直接赋值给一个枚举变量。例如 workday=1; 是错误的。它们属于不同的类型。应该先进性强制类型转换,然后才能赋值。例如:

相当于将序号为2的枚举元素赋值给workday,相当于

G. C语言枚举类型怎么用

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

比如:
WeekTypedef day=Monday;

H. C语言的枚举类型知识

导语:定义一个变量是枚举类型,可以先定义一个枚举类型名,然后再说明这个变量是该枚举类型。下面是C语言的枚举类型知识,欢迎阅读:

在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。

例如:

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

定义了一个枚举类型名 enum weekday,然后定义变量为该枚举类型。例如:

enum weekday day;

当然,也可以直接定义枚举类型变量。例如:

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

其中,sum,mon,…,sat 等称为枚举元素或枚举常量,它们是用户定义的标识符。

需要说明的有以下几点。

① 枚举元素不是变量,而是常数,因此枚举元素又称为枚举常量。因为是常量,所以不能对枚举元素进行赋值。

② 枚举元素作为常量,它们是有值的,C 语言在编译时按定义的顺序使它们的值为,1,2,…。

在上面的说明中,sun 的值为 0,mon 的值为 1,…sat 的.值为 6,如果有赋值语句

day=mon;

则 day 变量的值为 1。当然,这个变量值是可以输出的。例如:

printf ("%d",day);

将输出整数 1。

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

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

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

③ 枚举值可以用来作判断。例如:

if (day==mon) {…}

if (day>mon) {…}

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

C 语言教程 ?216?

④ 一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值。例如:

day=(enum weekday)2;

这个赋值的意思是,将顺序号为 2 的枚举元素赋给 day,相当于workday=tue;

【例 11.6】从键盘输入一个整数,显示与该整数对应的枚举常量的英文名称。

# include

void main( )

{

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

int k;

printf("input a number(0--6)");

scanf("%d",&k);

day=(enum weekday)k;

switch(day)

{

case sun: printf("sunday/n");break;

case mon: printf("monday/n");break;

case tue: printf("tuesday/n");break;

case wed: printf("wednesday/n");break;

case thu: printf("thursday/n");break;

case fri: printf("friday/n");break;

case sat: printf("satday/n");break;

default: printf("input error/n");break;

}

}

程序运行结果为:

input a number(0--6)1

monday

在该程序中,枚举常量与枚举变量可以进行比较,但要输出枚举常量对应的英文单词,不能使用以下语句:

printf(" %s",mon);

因为枚举常量 mon 为整数值,而非字符串。

在使用枚举变量时,主要关心的不是它的值的大小,而是其表示的状态。

注:以下全部代码的执行环境为VC++ 6.0

在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:

#define MON 1

#define TUE 2

#define WED 3

#define THU 4

#define FRI 5

#define SAT 6

#define SUN 7

在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。

1. 定义一种新的数据类型 - 枚举型

以下代码定义了这种新的数据类型 - 枚举型

enum DAY

{

MON=1, TUE, WED, THU, FRI, SAT, SUN

};

(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。

(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。

(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。

(5) 枚举型是预处理指令#define的替代。

(6) 类型定义以分号;结束。

2. 使用枚举类型对变量进行声明

新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整型int, 单精度浮点型float, 双精度浮点型double, 字符型char, 短整型short等等。用这些基本数据类型声明变量通常是这样:

char a; //变量a的类型均为字符型char

char letter;

int x,

y,

z; //变量x,y和z的类型均为整型int

int number;

double m, n;

double result; //变量result的类型为双精度浮点型double

既然枚举也是一种数据类型,那么它和基本数据类型一样也可以对变量进行声明。

方法一:枚举类型的定义和变量的声明分开

enum DAY

{

MON=1, TUE, WED, THU, FRI, SAT, SUN

};

enum DAY yesterday;

enum DAY today;

enum DAY tomorrow; //变量 tomorrow的类型为枚举型enum DAY

enum DAY good_day, bad_day; //变量good_day和bad_day的类型均为枚举型enum DAY

方法二:类型定义与变量声明同时进行:

enum //跟第一个定义不同的是,此处的标号DAY省略,这是允许的。

{

saturday,

sunday = 0,

monday,

tuesday,

wednesday,

thursday,

friday

} workday; //变量workday的类型为枚举型enum DAY

enum week { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} days; //变量days的类型为枚举型enum week

enum BOOLEAN { false, true } end_flag, match_flag; //定义枚举类型并声明了两个枚举型变量

方法三:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明:

typedef enum workday

{

saturday,

sunday = 0,

monday,

tuesday,

wednesday,

thursday,

friday

} workday; //此处的workday为枚举型enum workday的别名

workday today, tomorrow; //变量today和tomorrow的类型为枚举型workday,也即enum workday

enum workday中的workday可以省略:

typedef enum

{

saturday,

sunday = 0,

monday,

tuesday,

wednesday,

thursday,

friday

} workday; //此处的workday为枚举型enum workday的别名

workday today, tomorrow; //变量today和tomorrow的类型为枚举型workday,也即 enum workday。


I. C语言结构、联合和枚举(struct、union、enum)

@[TOC]

结构:具有不同数据类型的值(成员)的集合。
联合跟结构很类似,不同在于联合的成员共享同一存储空间。

结构成员通过名字而不是位置访问(与数组的区别)

指定初始化:不需要与结构成员的顺序一致

结构的赋值: part2 = part1 ,直接赋值(与数组不同)

不能用==和!=判断结构是否相等

命名结构时,两种写法都可以,但是 结构用于链表时,必须使用结构标记。

结构里面也允许嵌套结构。

编译器只为最大的成员分配足够的内存空间

结构变量的成员存储在 不同 的内存地址中,联合的成员存储在 同一 内存地址中。

联合的作用:用联合来节省空间
构造混合的数据结构

每次对联合的成员赋值,都由程序负责改变标记字段的内容

许多程序中,我们只具有少量有意义的值。
我们为这种具有少量可能值的变量提供了一种专用类型——枚举。

区别:枚举常量的名字必须不同于 作用于范围内 声明的其他标识符。

枚举常量遵循C语言的作用域规则:如果枚举声明在函数体内,那么它的常量对外部函数来说是不可见的。

默认情况下,编译器会把整数0,1,2……赋值给特定枚举中的变量

如果想要指定变量的值,可以在声明时指定。

当没有为枚举常量指定值时,它的值比前面一个值大1.

C语言允许把枚举常量和普通整数混合。

热点内容
英雄联盟登录密码在哪里修改 发布:2024-11-08 07:25:16 浏览:515
努比亚有没有免费云存储 发布:2024-11-08 07:08:18 浏览:569
主机什么配置可以打绝地求生 发布:2024-11-08 07:08:18 浏览:988
方舟手游如何请入火影服务器 发布:2024-11-08 07:05:57 浏览:311
ip6根服务器最新消息 发布:2024-11-08 07:05:56 浏览:334
探探存储的图片在哪里找 发布:2024-11-08 07:04:32 浏览:224
slp用什么编译器 发布:2024-11-08 07:04:16 浏览:413
三一重工天泵参数密码是什么 发布:2024-11-08 06:59:45 浏览:660
攻击服务器数据库 发布:2024-11-08 06:45:57 浏览:909
godaddy的云服务器 发布:2024-11-08 06:44:43 浏览:444