c言语enum是什么意思 (c言语程序设计)

c言语enum是什么意思 (c言语程序设计)

本文目录导航:

c言语enum是什么意思

c言语enum意思是枚举类型,属于c言语中的一种数据类型。

在“枚举”类型的定义中罗列出一切或许的取值,被说明为该“枚举”类型的变量取值不能超越定义的范畴。

枚举类型是一种基本数据类型,而不是一种结构类型,由于它不能再合成为任何基本类型。

裁减资料:

c言语enum枚举值是常量,不是变量。

不能在程序中用赋值语句再对它赋值。

c言语enum枚举元素自身由系统定义了一个示意序号的数值,从0开局顺序定义为0,1,2…。

如在weekday中,sun值为0,mon值为1,sat值为6。

只能把c言语enum枚举值赋予枚举变量,不能把元素的数值间接赋予枚举变量。

如必定要把数值赋予枚举变量,则必定用强迫类型转换。

C言语中的枚举类型

在C言语中,枚举类型是一种不凡的数据类型,它准许你定义一个变量,该变量的值只能是几个预约义的选项之一。

枚举类型的申明以 `enum` 主要字开局。

例如,你可以定义一个名为 `weekday` 的枚举类型,它蕴含了 `sun`、`mon`、`tue`、`wed`、`thu`、`fri` 和 `sat` 这七个枚举元素。

这些元素在申明时自动从0开局赋值,依次递增。

```cenum weekday {sun, mon, tue, wed, thu, fri, sat};```或许,你也可以在申明时为每个枚举元素指定详细的值:```cenum weekday {sun = 1, mon = 2, tue = 3, wed = 4, thu = 5, fri = 6, sat = 7};```枚举元素在C言语中被视为常量,因此你不能给它们赋值,如 `sun = 7;` 是失误的。

每个枚举元素都有自己的值,这个值从0开局智能递增,除非你在申明时指定了值。

枚举值可以用于比拟和判别,例如:```cif (day == mon) {// ...}```但是,你不能间接将一个整数赋值给枚举变量,例如 `workday = 1;` 是失误的,由于 `workday` 是一个枚举类型,而 `1` 是一个整数类型。

为了将整数赋值给枚举变量,你须要启动类型转换:```cworkday = (enum weekday)1;```这样的操作将整数1转换为 `mon`,由于它在 `weekday` 枚举中的值。

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

枚举类型C言语或C++的一种结构类型,它用于申明一组命名的常数。

\x0d\x0a(1)枚举的申明:枚举申明用于申明新的枚举类型。

\x0d\x0a访问修辞符 enum 枚举名:基础类型 \x0d\x0a{ \x0d\x0a枚举成员 \x0d\x0a} ;\x0d\x0a基础类型必定能够示意该枚举中定义的一切枚举数值。

枚举申明可以显式地申明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。

没有显式地申明基础类型的枚举申明象征着所对应的基础类型是 int。

\x0d\x0a(2)枚举成员 \x0d\x0a枚举成员是该枚举类型的命名常数。

恣意两个枚举成员不能具备相反的称号。

每个枚举成员均具无关系联的常数值。

此值的类型就是枚举的基础类型。

每个枚举成员的常数值必定在该枚举的基础类型的范畴之内。

\x0d\x0a示例: \x0d\x0apublic enum TimeofDay:uint \x0d\x0a{ \x0d\x0aMorning=-3, \x0d\x0aAfternoon=-2, \x0d\x0aEvening=-1 \x0d\x0a} ;\x0d\x0a发生编译时失误,要素是常数值 -1、-2 和 _3 不在基础整型 uint 的范畴内。

\x0d\x0a(3)枚举成员自动值 \x0d\x0a在枚举类型中申明的第一个枚举成员它的默值为零。

\x0d\x0a以后的枚举成员值是将前一个枚举成员(依照文本顺序)的值加 1 获取的。

这样参与后的值必定在该基础类型可示意的值的范畴内;否则,会发生编译时失误。

\x0d\x0a示例: \x0d\x0apublic enum TimeofDay:uint \x0d\x0a{ \x0d\x0aMorning, \x0d\x0aAfternoon, \x0d\x0aEvening \x0d\x0a} ;\x0d\x0aMorning的值为0,Afternoon的值为1,Evening的值为2。

\x0d\x0a(4)为枚举成员显示赋值 \x0d\x0a准许多个枚举成员有相反的值. \x0d\x0a没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1. \x0d\x0a示例 \x0d\x0apublic enum Number \x0d\x0a{ \x0d\x0aa=1, \x0d\x0ab, \x0d\x0ac=1, \x0d\x0ad \x0d\x0a} ;\x0d\x0ab的值为2,d的值为2. \x0d\x0a留意:以上枚举值都不能超越它的基础类型范畴。

否则会报错. \x0d\x0a(5)枚举类型与基础类型的转换 \x0d\x0a基础类型不能隐式转换为枚举类型 \x0d\x0a枚举类型也不能隐式转换为基础类型 \x0d\x0a示例: \x0d\x0apublic enum Number \x0d\x0a{ \x0d\x0aa, \x0d\x0ab, \x0d\x0ac, \x0d\x0ad \x0d\x0a} ;\x0d\x0aclass Test \x0d\x0a{ \x0d\x0apublic static void Main() \x0d\x0a{ \x0d\x0aint i=Number.a;//失误,要强迫类型转换(int)Number.a \x0d\x0aNumber n; \x0d\x0an=2 //失误,要强迫类型转换(Number)2 \x0d\x0a} \x0d\x0a} \x0d\x0a(6)类型 \x0d\ 类型是一切枚举类型的形象基类,并且从 承袭的成员在任何枚举类型中都可用。

\x0d\ 自身不是枚举类型。

相反,它是一个类类型,一切枚举类型都是从它派生的。

\x0d\ 从类型 派生 \x0d\x0a(7)经常使用枚举类型 \x0d\x0ausing System; \x0d\x0apublic enum TimeofDay \x0d\x0a{ \x0d\x0aMorning, \x0d\x0aAfternoon, \x0d\x0aEvening \x0d\x0a} ;\x0d\x0aclass Test \x0d\x0a{ \x0d\x0astatic void WriteGreeting(TimeofDay timeofDay) \x0d\x0a{ \x0d\x0aswitch(timeofDay) \x0d\x0a{ \x0d\x0acase : \x0d\(good morning); \x0d\x0abreak; \x0d\x0acase : \x0d\(good afternoon); \x0d\x0abreak; \x0d\x0acase : \x0d\(good evening); \x0d\x0abreak; \x0d\x0a} \x0d\x0a} \x0d\x0astatic void Main() \x0d\x0a{ \x0d\x0aWriteGreeting(); \x0d\x0aWriteGreeting(); \x0d\x0aWriteGreeting(); \x0d\x0a} \x0d\x0a}

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

87阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读