C语言中为什么要使用enum

Python026

C语言中为什么要使用enum,第1张

1 enum是枚举类型,与整型、浮点型、字符型等都属于原子类型。

2 用法示例,常用switch语句搭配使用

#include<stdio.h>

enum Direction

{

    East,West,South,North

}

int main(){

    enum Direction yourDirection = South

    switch (yourDirection){

    case East:

        puts("东方")

        break

    case West:

        puts("西方")

        break

    case South:

        puts("南方")

        break

    case North:

        puts("北方")

        break

    }

    getchar()

    return 0

}

就是为了定义一组同属性的值,默认的最前面的是0,后面的元素依次+1;

但是注意,每个枚举都唯一定义一个类型,里面的元素的值不是唯一的,枚举成员的初始化只能通过同一枚举的成员进行!!

如:

enum num{a,b,c,d}那么a=0,b=1,c=2,d=3

enum number{a=1,b,c=1,d,e}那么a=1,b=2,c=1,d=2,e=3

@[TOC]

结构:具有不同数据类型的值(成员)的集合。

联合跟结构很类似,不同在于联合的成员共享同一存储空间。

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

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

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

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

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

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

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

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

联合的作用:用联合来节省空间

构造混合的数据结构

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

许多程序中,我们只具有少量有意义的值。

我们为这种具有少量可能值的变量提供了一种专用类型——枚举。

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

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

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

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

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

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