【带头学C++】----- 六、结构体 ---- 6.7 共用体以及枚举类型

6.7 共用体以及枚举类型

结构体:结构体用于组合不同类型的数据,每个字段占用独立的内存空间。

共用体:共用体也组合不同类型的数据,但所有字段共享同一块内存。

因此,结构体适合表示具有多个属性的对象,而共用体适合表示可以具有不同值的数据。

-------结构体struct关键字-----------------------------------共用体使用union关键字---------

共用体占用的内存大小:由内部最大成员变量类型大小决定。

union Data{
     char a;
     short b;
     int c;
};

 

解析:由于a、b、c共用一块内存空间,赋值的时候,最后一次赋值wb.c=100,同时赋值给了a和b,最后三者相加就是300;

成员a bc共享同一块空间,但是每个成员 能操作的空间的范围 是由成员自身类型长度决定。

union Data{
     char a;
     short b;
     int c;
};

Data ob;
ob.a = 0x01020304;
ob.b = 0x0102;
ob.c = 0x01;

cout<<ob.a+ob.b+ob.c<<endl;  /等于  0x01020203

a是char类型一个字节、b是short类型两个字节,int c是4个字节。(32和64位这三者都一样)

(图片中地址存在错误,这个点只需要知道能操作的空间的范围 是由成员自身类型长度决定)

 

6.8枚举类型enum

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

在上述枚举类型中,Monday被赋值为0,Tuesday被赋值为1,依此类推。可以使用这些枚举常量来代替对应的整数值,使代码更加可读和易于理解。

 2.修改enum枚举类型的值

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/153086.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux动静态库

文章目录 静态库制作静态库并发布如何使用第三方静态库方式一方式二&#xff1a;方式三 动态库制作动态库并发布链接动态库方式一方式二方式三方式四 生成共享库参数 动静态库总结 静态库 程序在编译链接的时候&#xff0c;直接将该库拷贝一份到源文件&#xff0c;运行的时候不…

使用docker部署nacos分布式集群

本文目的 在服务器中部署nacos集群&#xff0c;并连接外置数据库关于外置的mysql部署和单例nacos如何部署请看下面的两个链接 如何使用docker部署mysql docker部署容器化mysql5.7-CSDN博客 如何使用docker部署nacos 容器化部署Nacos&#xff1a;从环境准备到启动-CSDN博客…

互联网医院系统:数字化时代中医疗服务的未来

随着数字化时代的发展&#xff0c;互联网医院系统在医疗服务中的作用日益凸显。本文将讨论互联网医院系统的一些关键技术方面&#xff0c;探讨这些技术如何推动医疗服务进入数字化时代。 1. 数据智能与个性化服务 互联网医院系统依赖于大数据分析和人工智能技术&#xff0c;…

android studio导入eclipse项目

网上下载一个老工程&#xff0c;.project文件里有eclipse。 android studio导入eclipse项目 eclipse项目结构 Android studio文件结构 下面是导入步骤&#xff1a; 第一步&#xff0c;打开一个项目。 选择File->New->Import Project 第二步&#xff0c;选择Eclipse项目根…

【LeetCode】每日一题 2023_11_16 最长奇偶子数组(枚举,模拟)

文章目录 刷题前唠嗑K 个元素的最大和题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 今天早上概率论期中&#xff0c;被爆杀完之后&#xff0c;下午数电&#xff0c;今天很疲惫很疲惫&#xff0c;一直拖到了现在&#xff0c;终…

70基于matlab的BP神经网络多输入单输出数据结果预测,输出结果包括均方根误差,决定系数

基于matlab的BP神经网络多输入单输出数据结果预测&#xff0c;输出结果包括均方根误差&#xff0c;决定系数。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 70 BP神经网络&#xff0c;时间序列预测 (xiaohongshu.com)https://www.xiaohongshu.com/explore/…

esp8266-01固件信息

除了NodeMCU固件&#xff0c;ESP8266芯片还可以使用其他固件&#xff0c;例如官方提供的Espressif Systems的AT固件&#xff0c;或者第三方开发者基于ESP8266芯片开发的其他固件。这些固件提供了不同的功能和编程接口&#xff0c;以满足不同的开发需求。 固件与底层硬件打交道…

11.11作业题

1.不死兔子 def fib(n):if n < 4:return 1else:return fib(n-1) fib(n-2) print("一年后共繁殖{}对兔子".format(fib(12))) 2.输入字符串&#xff0c;判断该字符串是否是回文字符串 s input("请输入一个字符串&#xff1a;") if not s:print("…

TVM编译入门概念 一

最近阅读到陈天奇的一篇文章&#xff0c;链接分享 21年底&#xff0c;他说在三年前也就是2018年左右就完成了基于多层优化的解决方案。 当把全栈解决方案搭建起来并且不断实践之后发现有两种隔阂阻碍整个行业的发展。做一些总结。 本文合适的受众是ai编译器相关的入门级选手或供…

巴菲特再度出手,清仓7家公司股票

KlipC报道&#xff1a;最新数据显示&#xff0c;伯克希尔第三季度总共清仓了7家公司的股份&#xff0c;其中包括动视暴雪、通用汽车、化工巨头塞拉尼斯、亿滋国际、强生、宝洁和联合包裹。 KlipC的合伙人Andi D表示&#xff1a;“此前最新的监管文件显示&#xff0c;伯克希尔哈…

Servlet---从创建项目到部署项目的整个流程

文章目录 创建项目引入Servlet依赖创建目录结构编写代码打包程序部署程序验证程序 创建项目 引入Servlet依赖 为什么需要引入依赖资源呢&#xff1f; Servlet不是标准库自带的&#xff0c;需要从外部引入进来才能使用。如何引入&#xff1f; 利用maven&#xff0c;maven的一个…

泛娱乐社交掀起2万亿市场热潮,Flat Ads独家流量助出海获客

作为产品/服务的提供方&#xff0c;中国企业在几乎所有海外市场&#xff0c;都算是强有力的参与者&#xff0c;在社交泛娱乐领域表现尤为突出。但不同于游戏、电商、工具等其他品类&#xff0c;我们几乎很难对社交泛娱乐下一个精准的的定义。因为随着技术进步、行业发展&#x…

机器视觉双目测宽仪 高温钢板实时无滞后检测

高温钢板在生产中的宽度尺寸检测有很多种方法&#xff0c;本来来介绍一下双目测宽仪&#xff0c;它同样能做到实时检测、超差提示、数据分析、信息存储等功能。 双目测宽仪采用两个工业相机从不同的角度对被测物同时进行测量&#xff0c;两个工业相机就像人的双眼&#xff0c;可…

Python接口自动化(什么是接口、接口优势、类型)

简介 经常听别人说接口测试&#xff0c;接口测试自动化&#xff0c;但是你对接口&#xff0c;有多少了解和认识&#xff0c;知道什么是接口吗&#xff1f;它是用来做什么的&#xff0c;测试时候要注意什么&#xff1f;坦白的说&#xff0c;笔者之前也不是很清楚。接下来先看一下…

appium自动化测试完整项目

前言 Appium是一个开源的自动化测试框架&#xff0c;支持跨平台&#xff0c;支持多种编程语言&#xff0c;可用于原生&#xff0c;混合和移动web应用程序&#xff0c;使用webdriver驱动ios&#xff0c;android应用程序、那么为了学习app自动化测试首要任务肯定就是搭建测试开发…

中小企业数字化的“下半场”,与华为的生态伙伴“引力场”

作者 | 曾响铃 文 | 响铃说 中小企业数字化始终是业界关注的重点&#xff0c;也催生了庞大的产业数字化价值空间等待挖掘&#xff0c;在如何推进这件事上&#xff0c;各方都在持续发力。 这其中&#xff0c;针对中小企业迫切需求&#xff0c;来自华为的动作正变得越来越紧凑…

echarts点击事件、柱状图设置区间颜色

实现echarts柱状图标记区域&#xff0c;并在单击柱状条时触发点击事件切换标记区域 //html <div id"main" style"width: 600px;height:400px;"></div>//js let _chart null; letselectInfo {};//选择的柱状条信息&#xff0c;可用于信息的获…

linux下安装python3.8(有坑)

1安装包下载 ###直接官网下载linux版本&#xff0c;找到对应的包 https://www.python.org/downloads/source/2安装包解压 tar -zxvf Python-3.8.0.tgz 3编译安装 1&#xff09;设置安装目录&#xff0c;比如在此创建在 /usr/local/python3 &#xff1a; mkdir -p /usr/loca…

解决计算机丢失msvcr71.dll问题,总结5种解决方法分享

由于各种原因&#xff0c;计算机在使用的过程中可能会出现一些问题&#xff0c;其中之一就是丢失msvcr71.dll文件。这个问题可能会导致计算机无法正常运行某些程序或功能&#xff0c;给我们的生活和工作带来困扰。那么&#xff0c;当我们遇到这个问题时&#xff0c;应该如何解决…