【考研复习】union有关的输出问题
文章目录
- 遇到的问题
- 正确解答
- 拓展
- 参考文章
遇到的问题
首次遇到下面的代码时,感觉应该输出65,323。深入理解union的存储之后发现正确答案是:67,323.
union
{char c;int i;
} u;
int main(){u.c = 'A';u.i = 0x143;printf("%d,%d\n", u.c, u.i);
}
正确解答
对union首先明确几点:
- union共用存储空间,后赋值的数据会将前面赋值的进行覆盖。
- 存储时,要求高地址在后,地址值在后。
- 存储空间大小为共用体成员中长度最长的成员的size。
上例可知共用体u中有两个成员i和c分别占用4个字节和2个字节,故u占用4个字节。
首先将A存入u中,字符A对应二进制为01000001。存储如下图所示:
再将十六进制143存储u,该数对应二进制101000011。存储如下图所示:
后面的0x143将第一次存储的A覆盖,当输出u.c
是则会输出01000011对应的十进制67,输出u.i
为0x143对应的十进制323.
拓展
值得注意的是当共用体中含有数组元素时,重复的赋值则不会被覆盖,应为不同的数组元素对应不同的地址,如下例所示。
union
{int i;char x[2];
} a;
int main()
{a.x[0] = 10;a.x[1] = 1;printf("%d\n", a.i);return 0;
}
10对应二进制:00001010
1对应二进制:00000001
存放方式:
计算所得值: i = 2^8 + 2^3 + 2^1 = 256 + 8 + 2 = 266
参考文章
1
2
相关文章:
【考研复习】union有关的输出问题
文章目录 遇到的问题正确解答拓展参考文章 遇到的问题 首次遇到下面的代码时,感觉应该输出65,323。深入理解union的存储之后发现正确答案是:67,323. union {char c;int i; } u; int main(){u.c A;u.i 0x143;printf("%d,%d\n", u.c, u.i); …...
Android学习之路(16) Android 数据库Litepal
一.LitePal的介绍 Litepal是Android郭霖大神的一个开源Android数据库的开源框架,它采用了对象关系映射(ORM)的模式,这是让我们非常好的理解的数据库,一个实体类对应我们数据库中的一个表。该库中还封装了许多的方法&a…...
Redis持久化(RDB/AOF)
"在哪里走散,你都会 找 到 我。" 认识持久化 我们在接触Mysql事务的时候,一定了解过Mysql事务的四个特性: "原子性(A)一致性(C)隔离性(I)持久性(D)" 而其中持久性其实与持久化是一回事,所谓持久与不持久&#x…...
小谈设计模式(15)—观察者模式
小谈设计模式(15)—观察者模式 专栏介绍专栏地址专栏介绍 观察者模式核心思想主要角色Subject(被观察者)ConcreteSubject(具体被观察者)Observer(观察者)ConcreteObserver࿰…...
简单工厂模式 创建型模式(非GoF经典设计模式)
简单工厂模式是属于创建型模式,也因为工厂中的方法一般设置为静态,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工…...
PE文件之导入表
1. 导入表 2. 显示导入表信息的例子 ; 作用: 将RVA地址转成FOA即文件偏移 ; 参数: _pFileHdr 指向读到内存中文件的基址指针 ; _dwRVA 目标RVA地址 ; 返回: 目标RVA转成文件偏移的值 RVA2FOA PROC USES esi edi edx, _pFileHdr:PTR BYTE, _dwRVA:DWORDmov esi, _pFil…...
二、码制及其转换
原码 根据我们所学可知,数字电路的逻辑电路是通过输出0和1来表示二进制数的,那么这个二进制数的正负又该怎么表示呢? 答案是在这个二进制数的最高位作为符号位来表示正负性,用0正数,用1表示负数,在这种表达…...
在pycharm中出现下载软件包失败的解决方法
一. 一般情况下我们会选择在设置中下载软件包,过程如下. 1. 直接点击左上角的文件, 再点击设置, 再点击项目, 在右边选择python解释器,点击号,输入要下载的软件包, 在下面的一系列的包中选择相对应的包,点击安装就可以了,有的时候我们下载的是最新的版本,如果要下载固定的版本…...
10.0 探索API调试事件原理
本章笔者将通过Windows平台下自带的调试API接口实现对特定进程的动态转存功能,首先简单介绍一下关于调试事件的相关信息,调试事件的建立需要依赖于DEBUG_EVENT这个特有的数据结构,该结构用于向调试器报告调试事件。当一个程序发生异常事件或者…...
文心一言 VS 讯飞星火 VS chatgpt (104)-- 算法导论10.1 2题
二、用go语言,说明如何在一个数组 A[1…n]中实现两个栈,使得当两个栈的元素个数之和不为 n 时,两者都不会发生上溢。要求 PUSH 和 POP 操作的运行时间为 O(1)。 文心一言: 在这个问题中,我们要在一个数组 A[1…n] 中…...
检测防火墙是否开启、判断程序是否加入防火墙白名单(附源码)
VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…...
vtk 动画入门 1 代码
实现效果如图: #include <vtkAutoInit.h> //VTK_MODULE_INIT(vtkRenderingOpenGL2); //VTK_MODULE_INIT(vtkInteractionStyle); VTK_MODULE_INIT(vtkRenderingOpenGL2); VTK_MODULE_INIT(vtkInteractionStyle); //VTK_MODULE_INIT(vtkRenderingFreeType); #in…...
【VR】【unity】如何在VR中实现远程投屏功能?
【背景】 目前主流的VD应用,用于娱乐很棒,但是用于工作还是无法效率地操作键鼠。用虚拟键盘工作则显然是不现实的。为了让自己的头显能够起到小面积代替多显示屏的作用,自己动手开发投屏VR应用。 【思路】 先实现C#的投屏应用。研究如何将C#投屏应用用Unity 3D项目转写。…...
OpenGl材质
在现实世界里,每个物体会对光产生不同的反应。比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。有些物体反射光的时候不会有太多的散射(Scatter),因而产生较小的高光点,而有些物体则会散射很多,产生一个有着更大半径的…...
背包问题
目录 开端 01背包问题 AcWing 01背包问题 Luogu P2925干草出售 Luogu P1048采药 完全背包问题 AcWing 完全背包问题 Luogu P1853投资的最大效益 多重背包问题 AcWing 多重背包问题 I AcWing 多重背包问题 II Luogu P1776宝物筛选 混合背包问题 AcWing 混合背包问题…...
JavaSE | 初始Java(十一) | 抽象类和抽象接口
抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的, 如果 一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类 在 Java 中,一个…...
产品经理如何科学的进行需求调研?
导语:作为产品经理,需求调研是开展工作的重要环节之一。科学、有效地进行需求调研不仅可以帮助产品经理更好地了解用户需求,还能指导产品设计和功能开发,提升产品的竞争力。本文将介绍几种科学的方法和技巧,帮助产品经…...
AI智能问答系统源码/AI绘画商业系统/支持GPT联网提问/支持Midjourney绘画
一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图…...
玩具玩偶配送经营商城小程序的作用是什么?
玩具玩偶是小孩子们喜欢的产品,其市场需求度很高,以前玩具店里总是不缺乏客户,但现在随着人们生活品牌提升及消费形式改变,无论玩具厂商还是门店经销商都面对着不少痛点: 如拓客引流难、线上销售经营难、营销难、分销…...
latex表格内容换行
问题描述: 在用latex表格中编写公式时,可能出现公式太长,表格中后面的内容不能在文档中呈现,如下图1,故要进行行内内容的换行,使内容呈现完全而传统的\换行后,换行内容会顶格,如图2。 解决方…...
2023 牛客国庆day4 【10.2训练补题】
目录 B-Basic Gcd Problem(素数筛快速幂) H-Harder Gcd Problem(素数) B-Basic Gcd Problem(素数筛快速幂) 打表找规律发现答案为 (n质因子数目)^c #include<bits/stdc.h> using namespace std;…...
android的USB开发时 mUsbManager.getDeviceList()获取都为空
类提供的主要方法有: getDeviceList() 获得设备列表,返回的是一个HashMap.;hasPermission(UsbDevice device) 判断你的应用程序是否有接入此USB设备的权限,如果有则返回真,否则返回false.openDevice(UsbDevice device) 打开USB设…...
SpringCloud Alibaba - Seata 部署 TC 服务,并集成微服务
目录 一、Seata 架构 1.1、Seata 架构重要角色 1.2、部署 TC 服务 1.2.1、前言 1.2.2、下载 seata-server 包,解压 1.2.3、修改配置 1.2.4、在 nacos 中添加配置 1.2.5、创建数据库表 1.2.6、启动 TC 服务 1.3、微服务集成 Seata 1.3.1、引入依赖 1.3.2、…...
Java基础面试,接口和抽象类的区别?
接口和抽象类的区别? 抽象类可以存在普通成员函数,而接口中只能存在public abstract 方法。抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的.抽象类只能继承一个,接口可以实现多个。 接…...
《视觉 SLAM 十四讲》V2 第 4 讲 李群与李代数 【什么样的相机位姿 最符合 当前观测数据】
P71 文章目录 4.1 李群与李代数基础4.1.3 李代数的定义4.1.4 李代数 so(3)4.1.5 李代数 se(3) 4.2 指数与对数映射4.2.1 SO(3)上的指数映射罗德里格斯公式推导 4.2.2 SE(3) 上的指数映射SO(3),SE(3),so(3),se(3)的对应关系 4.3 李代数求导与扰动模型4.3.2 SO(3)上的李代数求导…...
【深蓝学院】手写VIO第4章--基于滑动窗口算法的 VIO 系统:可观性和 一致性--笔记
0. 内容 T1. 参考SLAM14讲P247直接可写,注意 ξ 1 , ξ 2 \xi_1,\xi_2 ξ1,ξ2之间有约束(关系)。 套用舒尔补公式: marg掉 ξ 1 \xi_1 ξ1之后,信息被传递到 L 1 和 L 2 L_1和L_2 L1和L2之间了。 T2....
mfc 动态加载dll库,Mat转CImage,读ini配置文件,鼠标操作,在edit控件上画框,调试信息打印
动态加载dll库 h文件中添加 #include "mydll.h" #ifdef UNICODE //区分字符集 #define LoadLibrary LoadLibraryW #else #define LoadLibrary LoadLibraryA #endif // !UNICODEtypedef double(*mydllPtr)(int, int);类内添加: mydllPtr m_mydll; cpp…...
索尼 toio™应用创意开发征文|检测工业平台震动
虽然索尼toio Q宝机器人主要是为儿童教育娱乐开发的,但我认为它在工业等领域也有一定应用潜力。例如,工业领域经常会有某些平面在实际作业中持续震动,导致零件过疲劳、平台失去稳定等问题。而这样的平台往往位于机器内部,从外部很…...
【已解决】 Expected linebreaks to be ‘LF‘ but found ‘CRLF‘.
问题描述 团队都是用mac,只有我自己是windows,启动项目一直报错 Expected linebreaks to be ‘LF‘ but found ‘CRLF‘. 但我不能因为自己的问题去改团队配置,也尝试过该vscode配置默认是LF还是报错 思路 看文章vscode如何替换所有文件的…...
Java8 Lambda.stream.sorted() 方法使用浅析分享
文章目录 Java8 Lambda.stream.sorted() 方法使用浅析分享sorted() 重载方法一升序降序 sorted() 重载方法二升序降序多字段排序 mock代码 Java8 Lambda.stream.sorted() 方法使用浅析分享 本文主要分享运用 Java8 中的 Lambda.stream.sorted方法排序的使用! sorted…...
不更新网站如何做排名/人力资源短期培训班
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是自己打的,为什么这个能显示出来,有什么区别package uio;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class Text1 {public…...
杭州建德网站建设/万物识别扫一扫
在前几次的Server2008实验里面,我们向服务器FS01、FS02分别添加了一个磁盘分区E盘。但是没有介绍我们是如何通过VMWare Workstation来实现的。今天就让我们来一起利用VMWare Workstation来向虚拟主机添加一块新的硬盘并启用。利用虚拟机做实验,添加硬件&…...
四川住房和城乡建设部网站官网/小程序引流推广平台
bootload 加载linux 内核挂载ramdisk.imginit程序启动准备解析init.rc 和init.hardware.rc将early-init Action添加到action_queue队列中将init Action添加到action_queue队列中进入循环执行每个action中的commands里的命令启动service_list中svc_restarting服务监听属性状态变…...
上海单位建设报建网站/网站文章优化技巧
在家装设计当中,卫生间的设计非常重要,因为它和我们联系十分紧密,而且使用也极其频繁,如果设计不过关的话,会极大降低我们的日常体验,在设计卫生间的时候,卫浴产品选择非常关键,因为…...
网站icp备案证书/重庆百度快照优化
偶然看到了华为高薪招聘八位博士的新闻,我比较感兴趣,于是找来他们的专业方向,想看看华为到底在哪些领域上下血本了。 自动学习机器视觉导航软件无线电建模语言设计与软件形式化方法功耗控制大数据计算数学一人未知同时这八位博士研究方向各不…...
同一人可以做几个网站的负责人/百度seo和sem的区别
一、备份单个数据库1、备份命令:mysqldumpMySQL数据库自带的一个很好用的备份命令。是逻辑备份,导出 的是SQL语句。也就是把数据从MySQL库中以逻辑的SQL语句的形式直接输出或生成备份的文件的过程。单实例语法(Syntax):mysqldump -u -p > /path/to/**…...