构造类型-枚举类型

2020-04-19  本文已影响0人  晓晓桑

作用:声明代表整数常量的名称。(就是给整数起个名)
目的:提高代码的可读性。
本质:一组有名字的int常数,默认是从0开始,依次递增赋值(0,1,2...)。
声明枚举类型:
类型声明和结构体一样:有名字,无名字

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

enum Color {
  //名字不能重复
    //默认值分别是0,1,2,3,4
   //这些名字不是变量,他们只是一个名字
    enum_red,
    enum_black,
    enum_white,
    enum_blue,
    enum_yellow
};
int main(void) {
    //不需要定义变量 再.什么的,直接使用
    printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//0,1,2,3,4
    return 0;
}

指定枚举的范围

enum_red=20,后面依次递增

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

enum Color {
    //默认值分别是0,1,2,3,4
   enum_red=20,
    enum_black,
    enum_white,
    enum_blue,
    enum_yellow
};

int main(void) {
    printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//20,21,22,23,24
    return 0;
}

enum_white=20,前面取默认值,后面依次递增

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

enum Color {
    //默认值分别是0,1,2,3,4
    enum_red,
    enum_black,
    enum_white=20,
    enum_blue,
    enum_yellow
};

int main(void) {
    //不需要定义变量 再.什么的,直接使用
    printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//0,1,20,21,22
    return 0;
}

各种指定值

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

enum Color {
    //默认值分别是0,1,2,3,4
    enum_red=23,
    enum_black=90,
    enum_white=20,
    enum_blue=44,
    enum_yellow=56
};

int main(void) {
    //不需要定义变量 再.什么的,直接使用
    printf("%d,%d,%d,%d,%d", enum_red, enum_black, enum_white, enum_blue, enum_yellow);//23,90,20,44,56
    return 0;
}

声明枚举变量

enum的大小是:4字节

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

enum Color {
    //默认值分别是0,1,2,3,4
    enum_red = 23,
    enum_black = 90,
    enum_white,
    enum_blue = 44,
    enum_yellow = 56
} color1;

int main(void) {
    enum Color color = enum_red;
    color = 2;
    printf("%d", sizeof(enum Color));//4
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读