美文网首页
C语言基础04:联合体&枚举

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

作者: 陈有余 | 来源:发表于2018-03-29 15:10 被阅读16次

一、联合体

(一)定义:在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:联合体&枚举

    一、联合体 (一)定义:在C语言中允许多个不同变量共享同一内存区的功能成为联合(union)。声明联合的语法类似于...

  • C语言基础及指针⑩预编译及jni.h分析

    接续上篇C语言基础及指针⑨联合体与枚举 在上篇中我们了解了 , 多类型集合的联合体 , 固定值集合的枚举 , 内容...

  • NDK—C语言IO操作

    前面讲解了C语言的结构体、联合体和枚举,虽然只是基础,但是对于开发NDK来说已经够用了,接下来我们来学习一下C语言...

  • (五)C语言之联合体,枚举与IO

    (五)C语言之联合体,枚举与IO 一、联合体(共用体) 1、定义 不同类型的变量共同占用一段内存(相互覆盖),联合...

  • C语言基础及指针⑨联合体与枚举

    接续上篇C语言基础及指针⑧文件IO 在上篇中 , 我们初步了解了C语言的IO操作 , 编写IO操作的大致流程: 文...

  • C语言马拉松_03.3

    结构体 联合体 枚举类型 枚举类型 在实际生活中有很多对象的属性并不能使用C语言中给出的变量来直观描述,为了使程序...

  • 嵌入式第十天:结构

    今天来说一下C语言里的结构体(struct)、共用体(l联合体)union、枚举。欢迎加入嵌入式学习群:55960...

  • C语言 结构体,联合体,枚举

    结构体 C语言中结构体是一组构造数据类型,把不同的数据类型整合起来成为一个自定义的数据类型。如: 初始化方式 或者...

  • C语言枚举,联合体,预处理

    枚举 作业:将字符串"123"以整型123输出 双链表 联合体 联合体:多个成员变量共用一块空间,一个时间段只能用...

  • 位移枚举

    位移枚举 一. OC中常见的三种枚举 C语言枚举 // C语言枚举 typedef enum : NSUInteg...

网友评论

      本文标题:C语言基础04:联合体&枚举

      本文链接:https://www.haomeiwen.com/subject/lqsmcftx.html