C语言基础04:联合体&枚举

一、联合体

(一)定义:在C语言中允许多个不同变量共享同一内存区的功能成为联合(union)。声明联合的语法类似于结构,给联合指点标记名称的方式通常也是类似的。关键字 union 。示例代码如下:

union myValue{
    int x;
    int y;
    double z;
};

//声明变量
union myValue value;

联合成员的访问方式和结构成员完全相同。例如:

value.x = 12;
value.y = 24;
value.z = 23.9;//最后一次赋值有效

注:
1.联合实例所占的字节数是其最大的成员所占的空间;
2.定义联合指针的方式与定义结构指针相同。通过指针访问联合成员的方式与结构相同。

(二)特点
不同类型的变量共同占有一段内存(相互覆盖),联合变量任何时刻只有一个成员存在。即 共享内存

二、枚举

(一)定义:在编程时,常常希望变量存储一组可能值中的一个。例如一个变量存储当前月份的值。这个变量应只存储12个可能值中的一个,分别对应于1~12月。C语言中的枚举(enumeration)就用于这种情形。
利用枚举,可以定义一个新的 整数类型,该类型变量的值域是我们指定的几个可能值。下面的语句定义了一个枚举类型Weekday:

enum Weekday { Monday, Tuesday, Wednesday, Tursday, Friday, Saturday, Sunday};

这个语句定义了一个类型,而不是变量。

声明Weekday类型的一个新变量,并初始化它:

enum Weekday weekday = Monday;

也可以在定义枚举类型时,声明该类型的变量:

enum Weekday { Monday, Tuesday, Wednesday, Tursday, Friday, Saturday, Sunday} today , tomorrow ;

还可以在同一个语句中初始化变量:

enum Weekday { Monday, Tuesday, Wednesday, Tursday, Friday, Saturday, Sunday} today = Monday, tomorrow = today + 1;

tomorrow 的初始值比 today 大1。但是在执行这个操作时,要确保算数运算的结果是一个有效的枚举值。

你可能感兴趣的:(C语言基础04:联合体&枚举)