当前位置: 首页 > news >正文

自定义类型:联合和枚举【下】

在这里插入图片描述

联系上篇,我们继续写这篇文章。

联合的一个练习:

我们先来看之前写过的代码来判断当前机器的大小端。

在这里插入图片描述
在这里插入图片描述

我们也可以用联合做一个练习:写一个程序,判断当前机器是大端?还是小端?

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

也可以写成匿名的联合体类型,因为只用到一次,以后再也不用了。

在这里插入图片描述

这种方式就是相当于在i的4个字节里面拿它一个字节,看它是什么来进行判断,这样写真是妙啊!

二.枚举类型

1.枚举类型的声明

枚举顾名思义就是一一列举。
把可能的取值一一列举。
比如我们现实生活中:
一周的星期一到星期日是有限的7天,可以一一列举
性别有:男、女、保密,也可以一一列举
月份有12个月,也可以一一列举
三原色,也是可以意义列举
这些数据的表示就可以使用枚举了。

枚举类型就是把那些它的可能取值有限的这种类型定义为枚举类型,就是有些数据它取值是有限的,那我们就可以用枚举类型来描述它。比如:

在这里插入图片描述

其实枚举类型里面的成员是常量—枚举常量

在这里插入图片描述

枚举这里面的可能取值常量,默认是从零开始向下一次递增1的,所以打印结果是0 1 2。为什么是常量呢?是因为它们不能赋值改变

在这里插入图片描述

虽然我们不能改它们,但是我们可以最开始给它们值。

在这里插入图片描述
在这里插入图片描述

当我们给第一个成员一个值,下面的成员依旧会向下递增1的

在这里插入图片描述

中间赋值

在这里插入图片描述

这就是我们要讲的枚举类型创建以及它里面的可能取值,可能取值本质上是常量,这些常量就是枚举常量

2.枚举类型的优点

为什么使用枚举?
我们可以使用#define 定义常量,为什么非要使用枚举?
枚举的优点:
1.增加代码的可读性和可维护性
2.和#define定义的标识符比较枚举有类型检查,更加严谨。3.便于调试,预处理阶段会删除 #define 定义的符号4.使用方便,一次可以定义多个常量
5.枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用

我们拿枚举类型里面的可能取值给我们所用枚举类型所创建的变量赋值,是理所应当的,是可以的,但是我们不能给它赋值其他类型,这就是类型检查。C语言对类型检查不够严谨,如果想看的话可以转化成C++来看。

在这里插入图片描述
在这里插入图片描述

3.枚举类型的使用

在这里插入图片描述

那是否可以拿整数给枚举变量赋值呢?在C语言中是可以的,但是在C++是不行的,C++的类型检查比较严格。

在这里插入图片描述


http://www.mrgr.cn/news/59461.html

相关文章:

  • 在使用 RabbitMQ 作为消息代理时,多个 Celery 实例(或应用)可以共享同一个 RabbitMQ 实例
  • 2024年10月27日 十二生肖 今日运势
  • 「二叉树进阶题解:构建、遍历与结构转化全解析」
  • webRTC搭建:STUN 和 TURN 服务器 链接google的有点慢,是不是可以自己搭建
  • 【蓝桥杯选拔赛真题79】python字符串处理 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析
  • 可能是NextJs(使用ssr、api route)打包成桌面端(nextron、electron、tauri)的最佳解决方式
  • 【python库】PandasGUI介绍
  • w005基于Springboot学生心理咨询评估系统
  • 音视频开发之旅(98) -潜扩散模型(Latent Diffusion Model)原理及源码解析
  • VisionPro Basic - 01- 有关应用和作业
  • 0基础入门matlab
  • 格式化输入输出函数
  • Matlab版本更新引起模块变动产生报错解决方案
  • 揭秘开发者效率翻倍的秘密:高效编程工具推荐与实战指南
  • 基于JAVASE的题
  • 青少年CTF平台的基础题writeup
  • 数据的表示和运算 I
  • C++ (9) 项目实践:建造你的魔法城堡
  • 05 P3817 小A的糖果
  • 【SQL Server】探讨 IN 和 EXISTS之间的区别
  • 无心剑中译艾伦·罗贝纳·菲尔德《秋歌》
  • 全球知名度最高的华人起名大师颜廷利:世界顶级思想哲学教育家
  • 防火墙和堡垒机有什么区别?
  • Java jdk版动态代理介绍
  • 数组指针
  • Python中,lambda函数的用法是什么?