自定义数据类型---枚举和共用体(浅记)

枚举

枚举顾名思义就是把可能的取值一一列举,比如在我们现实生活中:一周的星期一到星期日是有限的7天,可以一一列举。性别有:男,女,保密,也可以一一列举;十二个月份也可以一一列举。这时就可以使用枚举了。

枚举类型的定义

枚举的使用

enum Sex{
    //枚举的可能取值---常量
    MALE;
    FEMALE;
    SECRET;
};

enum Color{
    RED;
    GREEN;
    BLUE;
};



int main(){
    enum Sex s=MalE;
    enum Color c=BLUE;
    
    return 0;
}

枚举的优点

为什么使用枚举?
我们可以使用 #define定义常量,为什么非要使用枚举?枚举的优点:

  • 1,增加了代码的可读性和可维护性
  • 2,和#define定义的标识符比较枚举有类型检查,更加严谨。
  • 3,防止了命名污染(封装)
  • 4,便于调试
  • 5,使用方便,一次可以定义多个常量

联合(共用体)

联合类型的定义

联合也是一种特殊的自定义类型,这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。比如:

union Un{
    char c;//1字节
    int i;//4字节
};
//5字节

int main(){
    union Un u;
    printf("%d\n",sizeof(u));//结果为4字节
    printf("%p\n",&(u.c));
    printf("%p\n",&(u.i));
    printf("%p\n",&u);
    return 0;
}
//由程序的运行结果可知,他们公用一块内存空间

联合体的特点

联合的成员是共用同一块内存空间,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员。)

自定义数据类型---枚举和共用体(浅记)_第1张图片

你可能感兴趣的:(c,语言系统学习,enum,c语言)