c语言枚举(c语言枚举法经典例题)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言枚举(c语言枚举法经典例题)相关的知识,希望对你有一定的参考价值。

C语言枚举类型是什么意思
就是你声明的这个枚举变量的值,只能取其中的东西,比如:enum Monday,Tuesday,Wednesday,Thursday,Friday weekday;那weekday这个变脸的值只能是中的值。(他们分别对应数字0,1,2,3,4,因为枚举型变量也是整型)枚举类型是派生自system.enum的一种独特的值类型,用于声明一组命名的常数。每种枚举类型均有一种基础类型,此基础类型可以使除char类型以外的任何整型。
枚举元素的默认基础类型为int 默认情况下,第一个枚举元素的值为0,后面每个枚举元素的值依次递增1 。如
emum weekdaysun,mon,tue,wed,thu,fri,sat,在此枚举中,sun的值为0 ,mon为1 以此类推。也可emum weekdaysun=1,mon,tue,wed=sun,thu,fri,sat,强制第一个枚举元素sun的值为1,mon为2,tue为3,而wed又强制为1,依次类推。
如果枚举元素的数据类型不是int型,则可 enum color:longred,green,blue
例:使用枚举类型
using system;
public class testenum
enum range:longmax=2147483648l,min=255l
public static void main()
long a=(long) range.max;
long b=(long) range.min;
console.writeline("max=0,min=1",a,b);
再看一个例子
enum colorred=green,green,blue
枚举元素red的值由green决定,而枚举元素green的值又由red决定,从而形成一个循环,这将产生错误。枚举类型C语言或C++的一种构造类型,它用于声明一组命名的常数。
(1)枚举的声明:枚举声明用于声明新的枚举类型。
访问修辞符 enum 枚举名:基础类型
枚举成员
基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。
(2)枚举成员
枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。
public enum TimeofDay:uint
Morning=-3,
Afternoon=-2,
Evening=-1
产生编译时错误,原因是常数值 -1、-2 和 –3 不在基础整型 uint 的范围内。
(3)枚举成员默认值
在枚举类型中声明的第一个枚举成员它的默值为零。
以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。
public enum TimeofDay:uint
Morning,
Afternoon,
Evening
Morning的值为0,Afternoon的值为1,Evening的值为2。
(4)为枚举成员显示赋值
允许多个枚举成员有相同的值.
没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.
public enum Number
a=1,
c=1,
b的值为2,d的值为2.
注意:以上枚举值都不能超过它的基础类型范围。否则会报错.
(5)枚举类型与基础类型的转换
基础类型不能隐式转换为枚举类型
枚举类型也不能隐式转换为基础类型
public enum Number
class Test
public static void Main()
int i=Number.a;//错误,要强制类型转换(int)Number.a
Number n;
n=2 //错误,要强制类型转换(Number)2
(6)System.Enum类型
System.Enum 类型是所有枚举类型的抽象基类,并且从 System.Enum 继承的成员在任何枚举类型中都可用。
System.Enum 本身不是枚举类型。相反,它是一个类类型,所有枚举类型都是从它派生的。
System.Enum 从类型 System.ValueType派生
(7)使用枚举类型
using System;
public enum TimeofDay
Morning,
Afternoon,
Evening
class Test
static void WriteGreeting(TimeofDay timeofDay)
switch(timeofDay)
case TimeofDay.Morning:
Console.WriteLine("good morning");
break;
case TimeofDay.Afternoon:
Console.WriteLine("good afternoon");
break;
case TimeofDay.Evening:
Console.WriteLine("good evening");
break;
static void Main()
WriteGreeting(TimeofDay.Morning);
WriteGreeting(TimeofDay.Evening);
WriteGreeting(TimeofDay.Afternoon);
enum在c语言中怎么用 (枚举型)
(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。
(5) 枚举型是预处理指令#define的替代。
(6) 类型定义以分号;结束。定义枚举类型
enum YOURENUMTYPEID1,//如果不额外指定则第一个标识等于整数0,后续依次加1ID2,
ID3=7,
IDn//最后一个标识符后面没有逗号
;//注意一定要加上这个分号定义枚举变量
enum YOURENUMTYPE varname;
给枚举变量赋值 varname = IDx;举个完整的例子enum FRUITAPPLE,
PEAR,
ORANGE,
PEACH,
GRAPE,
BANANA;enmu FRUIT myfruit = PEACH;
1举个例子: 学生 类分大学生 高中 初中小学生
你就可以这么做
enum studentcolleage,high,middle,junior
//小明是个大学生
student xiaoming=colleage;//判断小刚是不是高中生c语言的枚举类型实质就是整型变量,只不过通过枚举类型将一类有关联的标识组合起来,增加程序的可读性和可维护性
(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
(2) day是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。
(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。
(5) 枚举型是预处理指令#define的替代。
(6) 类型定义以分号;结束。
定义枚举类型
enum yourenumtype
id1,//如果不额外指定则第一个标识等于整数0,后续依次加1
id2,
id3=7,
....
idn//最后一个标识符后面没有逗号
;//注意一定要加上这个分号
定义枚举变量
enum yourenumtype varname;
给枚举变量赋值 varname = idx;
举个完整的例子
enum fruit
apple,
pear,
orange,
peach,
grape,
banana
enmu fruit myfruit = peach;

以上是关于c语言枚举(c语言枚举法经典例题)的主要内容,如果未能解决你的问题,请参考以下文章

枚举类型

C语言枚举定义函数,是啥意思?

C语言的枚举类型知识

C语言中的枚举类型

c#中怎样定义枚举?

C语言枚举