首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

枚举与联合

我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。...使用方便,一次可以定义多个常量 1.3枚举的使用 enum Color//颜色 { RED=1, GREEN=2, BLUE=4 }; enum Color clr = GREEN;//只能拿枚举常量给枚举变量赋值...clr = 5; 2.联合 2.1联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。...(un));//4 2.2联合体的特点 联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联 合至少得有能力保存最大的那个成员)。...un.i = 0x11223344; un.c = 0x55; printf("%x\n", un.i);//11223355 2.3联合大小的计算 联合的大小至少是最大成员的大小。

11810

联合和枚举

联合体 1.1 联合体类型的声明 联合体和结构体类似,但是又结构体又不同,结构体中的每个成员都是独立的,修改其中任意一个值不会影响另外一个值,但是在联合体中,修改其中一个值,一定会有另一个值跟随他发生改变...1.2 联合体的特点 联合的成员是共⽤同⼀块内存空间的,这样⼀个联合变量的⼤⼩,⾄少是最⼤成员的⼤⼩(因为联合⾄少得有能⼒保存最⼤的那个成员)。...枚举类型 2.1 枚举类型的声明 枚举顾名思义就是⼀⼀列举。 把可能的取值⼀⼀列举。...{}中的内容是枚举类型的可能取值,也叫 枚举常量 。 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。...clr = GREEN;//使⽤枚举常量给枚举变量赋值 那是否可以拿整数给枚举变量赋值呢?

6100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C语言】联合和枚举

    一、联合体 1、联合体类型的声明 联合体的定义与结构体相似,但是联合体往往会节省更多的空间,它的特点是所有成员共用一块内存空间,结构体也叫共用体 联合体中给某一成员赋值,其他成员值往往会跟着变化 #include...就是因为前边提到的:联合体的成员共用一块内存空间 2、联合体成员的特点 联合变量的大小至少是最大成员变量的大小 #include union Un { char c; int i...1、枚举的声明 枚举就是一一列举的意思,枚举用enum来定义,定义方法也是类似结构体与联合体的方式 enum Day//星期 { Mon, Tues, Wed, Thur, Fri, Sat..., Sun }; enum Day就是枚举类型,大括号中的内容为枚举类型的可能取值,也叫枚举常量,这些枚举常量都是有值的,默认从0开始,依次递增1,也可以赋初始值 enum Day { Mon,...#define也可以完成枚举这样的效果,那为什么我们还要使用枚举呢?

    7210

    结构体进阶与枚举联合

    结构体进阶与枚举联合:: 结构体进阶: 结构体类型的声明 结构体概述: 有时候我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号、姓名、性别、年龄、地址等属性.显然单独定义以上变量比较繁琐...: 枚举类型的定义 枚举:将变量的值一一列举出来,变量的值只限于列举出来的值的范围内. enum 枚举名 { 枚举值列表 }; 枚举的性质: 在枚举值表中应列出所有可用值,也称为枚举元素....枚举值是常量,不能在程序中用赋值语句再对它赋值....联合的成员是共用一块空间的,这样一个联合变量的大小,至少是最大成员的大小....联合的大小至少是最大成员的大小,当最大成员不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍.

    61810

    C语言(13)----联合和枚举

    联合体 联合体(union)是一种特殊的数据类型,可以在同一内存空间中存储不同类型的数据。...联合体和结构体(struct)类似,但不同之处在于结构体的各个成员会分别占用内存空间,而联合体的各个成员共享同一内存空间。鉴于这个特性,联合体也叫做共用体。...联合体的声明 union union_name { data_type member1; data_type member2; // 可以有多个成员 }; 联合体的大小 因为共享同一内存空间...,那么为了有足够的空间来装下所有的成员,那么联合体大小必须要大于最大成员的大小。...枚举 枚举顾名思义,就是将情况一一列举。 而枚举实际上是根据某个事物包括的情况来列举的。例如一周是有周一到周日七种情况,而身份是有父亲儿子等等多种情况。 枚举要做的就是把情况都列出来。

    5610

    C语言详解(联合和枚举)

    前言 自定义类型除了结构体,还有联合体(共用体)、枚举等,本篇文章将对联合体、枚举展开详细介绍,讨论其特点,以及相较于结构体而言联合体又有什么相同之处和相异之处 一、联合体、 1、联合体类型的声明 联合体类型的关键字是...这里联合体的特点就恰好解决了我们怎么在4个字节中拿出第一个字节的问题 二、枚举类型 1、枚举类型的声明 在现实生活中,有些值是有限的,是可以一一列举出来的,比如:星期只有星期一到星期日,三原色只有红...这些数据的表示就可以使用枚举。枚举就是一一列举的意思。...{ }中的内容是枚举类型的可能取值,也叫枚举常量。...,只能在函数内使用 3、枚举类型的使用 枚举类型的使用很简单,创建枚举类型,用枚举类型创建变量,再用枚举类型的可能取值给它赋值就行。

    15210

    【C语言】联合体和枚举

    前言 这篇博客就把剩下的两个自定义类型联合体和枚举好好总结一下,让我们好好看看联合体和枚举到底是什么 个人主页:小张同学zkf 若有问题 评论区见 感兴趣就关注一下吧 1....枚举类型 枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量 2.1 枚举类型的声明 枚举顾名思义就是一 一列举。 把可能的取值一 一列举。...{}中的内容是枚举类型的可能取值,也叫 枚举常量 。 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。...我们来看一下枚举的优点就知道了 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3....结束语 枚举和联合体总结完了,这两个和上一篇的结构体都可以用typedef关键字重命名,好了全部自定义类型总结完了 OK,感谢观看

    9710

    联合体类型和枚举类型

    联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。...联合体内存分配 联合体内存分配也符合对齐规则。..., SECRET }; enum Color//颜⾊ { RED, GREEN, BLUE }; 枚举跟前面的结构体和联合体完全不同。...枚举依然能像结构体和联合体一样在;前面创建变量(创建类型的同时创建变量) 这大概就是枚举的主要知识点,当然它还有更多的细节,对于这些细节我就不讲了(实在有点多),这里有篇好文我推荐下,大家可以去看下C...总结 所以目前我们就讲解完了联合体和枚举 。 下一篇将给大家讲解动态内存管理。 谢谢大家!!!

    11310

    枚举以及联合体--C语言

    枚举 枚举的定义 枚举顾名思义就是一一列举。 把可能的取值一一列举。 一周的星期一到星期日是有限的7天,可以一一列举。 性别有:男、女、保密,也可以一一列举。...,也叫枚举常量。...枚举的优点 我们可以使用#define 定义常量,为什么非要使用枚举? 枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符比较枚举有类型检查,更加严谨。...(un)); 联合体的变量是共用同一块空间的 联合体的计算 联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。...以上就是自定义类型中的枚举和联合体的介绍以及用法解释,自定义类型的使用是十分灵活的,需要我们好好领悟,要是文章有哪些错误,希望各位在评论区可以指正,我们一起进步!

    48920

    C语言结构体、联合与枚举类型

    2.联合的声明 联合体的声明使用union关键字来声明联合体,联合体的声明与结构体类似: 成员表中含有若干成员,成员的一般形式为: 类型说明符 成员名。...与结构体(struct)、枚举(enum)一样,联合体也是一种构造类型。 联合的声明访问跟结构体类似,访问跟结构体也相似都是用点运算符来进行对联合体成员的访问。...union 联合体名称{ 参数列表 }; 3.联合的特点 要想了解一个数据结构最好的方法当然是观察它的内存,我们不妨设计一个联合体打印出联合各个成员的地址来观察: #include...三、枚举 顾名思义,枚举的意思就是列举,类如对一周七天的天气列举,对一个系统的不同模式进行列举就是枚举。...1.枚举类型的定义 枚举类型的定义非常简单,跟结构体非常相似,使用关键字enum来对枚举进行声明,大括号内的内容为被逗号隔开的枚举的可能取值,这样就完成了枚举类型的声明。

    11810

    自定义类型:结构体,枚举,联合

    比较常见的自定义类型主要分为3种:结构体、枚举、联合。 二、探窥自定义类型 1.结构体(struct) 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。...枚举 枚举顾名思义就是一一列举。 把可能的取值一一列举。 比如我们现实生活中: 一周的星期一到星期日是有限的7天,可以一一列举。 月份有12个月,也可以一一列举 这里就可以使用枚举了。...我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3....联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。...(un)); 4.2 联合的特点 联合的成员是共用同一块内存空间的(有点像高级的位段),这样一个联合变量的大小,至少是最大成员的大小(因为联 合至少得有能力保存最大的那个成员)。

    54410

    自定义类型:结构体,枚举,联合

    {}中的内容是枚举类型的可能取值,也叫 枚举常量 。 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。...Color clr = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。...联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。...("%d\n", sizeof(un)); 4.2 联合的特点 也可以像结构体一样匿名 联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员...) 4.3 联合大小的计算 联合的大小至少是最大成员的大小。

    10810

    【自定义类型:结构体,枚举,联合】

    自定义类型:结构体,枚举,联合 1....枚举 3.1 枚举的使用: 3.2 枚举的优点: 4. 联合(共用体) 4.1 联合类型的定义 4.2 联合的特点 4.3 联合大小的计算 5. 总结: 1....Day//星期 { //枚举常量 Mon=1, Tues, Wed, Thur, Fri, Sat, Sun }; 3.2 枚举的优点: 为什么使用枚举?...枚举的优点: 增强代码的可读性和可维护性。 和#define定义的标识符比较枚举有类型检查,更加严谨。 防止命名污染(封装)。 使用方便,一次可以定义多个常量。 4....联合(共用体) 4.1 联合类型的定义 联合也是一种特殊的自定义类型。 这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合也叫共用体)。

    47900

    【C语言】数组&&结构体&&枚举&联合详解

    枚举顾名思义就是一一列举 把可能的取值一一列举 4.1 枚举类型的定义 枚举关键字是enum enum Sex { //枚举的可能取值 MALE,//枚举常量 FEMALE, SECRET }...; 枚举常量的取值是从0开始的 在主函数中,我们用枚举常量的可能取值给他赋值,比如: 4.2 枚举的优点 为什么使用枚举?...联合(共用体) 5.1 联合类型的定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体) 联合体关键字是union union Un...{ char c; int i; }; 联合体的成员,在同一时间只能使用一个 5.2 联合的特点 联合的成员是公用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的成员...) 5.3 联合大小的计算 联合的大小至少是最大成员的大小 当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍

    16210

    枚举以及联合体--C语言版

    枚举的定义 枚举顾名思义就是一一列举。 把可能的取值一一列举。 一周的星期一到星期日是有限的7天,可以一一列举。 性别有:男、女、保密,也可以一一列举。...,也叫枚举常量。...枚举的优点 我们可以使用#define 定义常量,为什么非要使用枚举? 枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符比较枚举有类型检查,更加严谨。...(un)); 联合体的变量是共用同一块空间的 联合体的计算 联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。...以上就是自定义类型中的枚举、联合体的介绍以及用法解释,自定义类型的使用是十分灵活的,需要我们好好领悟,如果文章有哪些错误,希望各位在评论区可以指正,我们一起进步!

    47530

    自定义类型:联合体和枚举

    联合体 1.1 联合体类型的声明 像结构体一样,联合体也是由一个或多个成员构成,这些成员可以是不同类型。 但是编译器只为最大的成员分配足够的内存空间。联合体特点是所有成员共用同一块内存空间。...联合的成员是共用同一块内存空间,联合体的大小至少是最大成员的大小。...1.3 相同成员的结构体和联合体对比 1.4 联合体大小的计算 -> 联合体的大小至少是最大成员的大小。 ->当最大成员大小不是最大对齐数的整数倍时,就要对齐到最大对齐数的整数倍。...枚举类型的优点 我们也可以使用#define定义常量,为什么还有枚举? 枚举的优点: 1. 增加代码的可读性和可维护性。 2....枚举变量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用。

    5010
    领券