首页 > 编程笔记 > C语言笔记 阅读:2

enum在c语言中是什么意思?(附带实例)

实际问题中,有些变量会被限定在一个有限范围内,如一周有 7 天,一年有 12 个月等。如果把这些变量声明为整型、字符型或其他类型,显然是不妥的。为此,C语言提供了 enum 枚举类型。

枚举类型是一种基本数据类型,不能再被分拆。在 C 语言程序中,利用关键字 enum 可以声明枚举类型,并使用枚举类型定义变量。

一个枚举变量包含一组相关的标识符,每个标识符都对应一个整数值,称为枚举常量。例如,定义一个枚举类型变量,其中每个标识符都对应一个整数值:
enum Colors(Red,Green,Blue);
Colors 就是定义的枚举类型变量,括号中第一个标识符对应着数值 0,第二个对应于 1,依此类推。

注意,每个标识符都必须是唯一的,而且不能采用关键字或当前作用域内其他相同的标识符名。


在定义枚举类型的变量时,可以为某个特定的标识符指定其对应的整型值,紧随其后的标识符对应的值依次加 1。例如:
enum Colors(Red=1,Green,Blue);
这样的话,Red 的值为 1,Green 为 2,Blue 为 3。

【实例】选择喜欢的颜色。在本实例中,通过定义枚举类型观察其使用方式,其中每个枚举常量在声明的作用域内都可以看作一个新的数据类型。
#include<stdio.h>

enum Color{Red=1, Blue, Green} color; /*定义枚举变量,并初始化*/

int main()
{
    int icolor;
    printf("1 代表红色,2 代表蓝色,3 代表绿色。\n"); /*定义整型变量*/
    printf("请输入您要选择的数字: "); /*输入数据*/
    scanf("%d", &icolor); /*判断 icolor 值*/
    switch(icolor)
    {
        case Red:
            printf("选择红色\n"); /*枚举常量,Red 表示 1*/
            break;
        case Blue:
            printf("选择蓝色\n"); /*枚举常量,Blue 表示 2*/
            break;
        case Green:
            printf("选择绿色\n"); /*枚举常量,Green 表示 3*/
            break;
        default:
            printf("???\n");
            break;
    }
    return 0;
}
程序中首先定义了一个枚举变量。初始化时为第一个枚举常量赋值为 1。Red 赋值为 1 后,之后的枚举常量就会依次加 1。通过 switch 语句判断输入的数据与这些标识符是否符合,然后执行 case 语句中的操作。

运行程序,结果为:

1 代表红色,2 代表蓝色,3 代表绿色。
请输入您要选择的数字: 2
选择蓝色

相关文章