引用变量

news/2024/11/16 22:27:48/文章来源:https://www.cnblogs.com/thammer/p/18382539

在C++ Primer Plus中,最开始介绍的是变量和引用变量。变量实际就包含了左值类型的变量和右值类型的变量。

引用变量

引用是C++引入的概念,引用变量是已定义的变量的别名(alias)。引用的创建示例如下:

int a = 10;
int &b = a;

引用在定义时必须初始化,这点和const限定的变量很像,为什么需要初始化呢?通过compiler explorer分析其汇编:

第一句int a = 10对应2句汇编:

        movs    r3, #10     ;把立即数10存到寄存器r3str     r3, [r7]    ;将r3寄存器的值存到r7寄存器里面的那个内存地址,而r7在第4行被设置为sp + 0, ;sp即栈指针寄存器。也就是说此时r7存储的内存地址就是栈顶。总的看来就是在栈顶压入了一个变量,变量值为10。;这也是局部变量分配内存和存储的方式。

第二句int &b = a;对应:

        mov     r3, r7      ;将r7存储的内容(还是sp + 0,也即栈顶内存地址)存储到寄存器r3str     r3, [r7, #4];将r3内容(此刻的栈顶)存储到栈顶偏移4字节的地方,也就是栈上申请了4个字节空间存储局部变量a的地址。

第三句b = 5;对应:

        ldr     r3, [r7, #4];加载变量a的地址到r3中movs    r2, #5      ;r2存入立即数5str     r2, [r3]    ;r2里面的值存储到r3里面内存地址指向的地方,也就是变量a的存储空间。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MURF1640CT-ASEMI智能AI专用MURF1640CT

MURF1640CT-ASEMI智能AI专用MURF1640CT编辑:ll MURF1640CT-ASEMI智能AI专用MURF1640CT 型号:MURF1640CT 品牌:ASEMI 封装:ITO-220AB 批号:最新 最大平均正向电流(IF):16A 最大循环峰值反向电压(VRRM):400V 最大正向电压(VF):0.95V~1..90V 工作温度:-50C~150C 反…

prometheus学习笔记之Grafana安装与配置

一、Grafana简介 grafana是⼀个可视化组件,⽤于接收客户端浏览器的请求并连接到prometheus查询数据,最后经过渲染并在浏览器进⾏体系化显示,需要注意的是, grafana查询数据类似于zabbix⼀样需要⾃定义模板,模板可以⼿动制作也可以导⼊已有模板。 Grafana的基础架构主要包括…

PHPStudy 面板在使用过程中可能会遇到各种错误

面板在使用过程中可能会遇到各种错误。这里列出一些常见的问题及其解决方法: 启动问题启动失败描述:面板启动时失败,无法正常工作。 解决方法:检查面板的日志文件,查找启动失败的具体原因。 确认服务器资源是否足够。 重新安装或更新到最新版本的 PHPStudy。网站问题网站运…

MAMP 是一款在 macOS 上搭建本地 Web 开发环境的工具

MAMP 是一款在 macOS 上搭建本地 Web 开发环境的工具,包括 Apache、MySQL 和 PHP。以下是 MAMP 中一些常见的问题及其解决方法: 安装问题安装后提示已损坏描述:安装 MAMP 后提示应用已损坏,无法打开。 解决方法:关闭系统完整性保护(SIP)。 从可信来源重新下载安装包。 使…

WAMP(Windows + Apache + MySQL + PHP)是在 Windows 系统上搭建本地 Web 开发环境的一种方式

WAMP(Windows + Apache + MySQL + PHP)是在 Windows 系统上搭建本地 Web 开发环境的一种方式。下面是 WAMP 中一些常见的问题及其解决方法: 启动问题启动后 WAMP 托盘图标显示橙色描述:WAMP 启动后托盘图标显示为橙色,表示某些服务没有正常启动。 解决方法:检查 Apache 或…

启动后 WAMP 托盘图标显示橙色怎么办

启动后 WAMP 托盘图标显示橙色描述:WAMP 启动后托盘图标显示为橙色,表示某些服务没有正常启动。 解决方法:检查 Apache 或 MySQL 服务是否成功启动。 如果是端口冲突,尝试更改 Apache 的端口号。 如果是配置问题,检查 httpd.conf 和 my.ini 文件。扫码添加技术【解决问题】…

WAMP 安装完毕后,PHP 文件无法正常运行怎么办

PHP 文件无法运行描述:WAMP 安装完毕后,PHP 文件无法正常运行。 解决方法:确认 PHP 文件是否放在了 www 目录下。 检查 Apache 的配置文件 httpd.conf,确保 PHP 模块已正确加载。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、…

使用 MySQL 时出现错误提示怎么办?

MySQL 无法启动描述:启动 WAMP 时 MySQL 服务无法启动。 解决方法:检查 my.ini 文件中的配置。 确认 MySQL 数据目录是否损坏。 尝试重置 MySQL 数据目录。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascrip…

无法访问 localhost怎么处理

无法访问 localhost描述:启动 XAMPP 后无法通过浏览器访问 http://localhost。 解决方法:确认 Apache 服务是否已经成功启动。 检查防火墙设置,确保没有阻止 Apache 服务。 检查 httpd.conf 文件中的监听地址是否正确。扫码添加技术【解决问题】专注中小企业网站建设、网站安…

网站提示403 禁止访问怎么办

当网站提示 403 禁止访问 时,这意味着服务器理解了您的请求,但拒绝执行它。这通常是因为您没有权限访问所请求的资源,或者服务器配置了某些规则来阻止您的访问。以下是解决 403 禁止访问 错误的一些常见方法: 常见原因身份验证问题:用户可能没有正确的登录凭证来访问特定的…

网站提示405 资源被禁止怎么办

当网站提示 405 资源被禁止 时,这通常意味着服务器理解了您的请求,但是拒绝了请求中使用的 HTTP 方法。例如,如果服务器仅接受 POST 请求,而您使用了 GET 请求,就会出现这种错误。以下是解决 405 资源被禁止 错误的一些常见方法: 常见原因请求方法不正确:客户端发送的请…

记一次 .NET某实验室自动进样系统 崩溃分析

一:背景 1. 讲故事 前些天有位朋友在微信上联系到我,说他们的程序在客户那边崩掉了,让我帮忙看下怎么回事,dump也拿到了,那就上手分析吧。 二:WinDbg 分析 1. 哪里的崩溃 既然是程序的崩溃,自然是有原因的,皮裤套棉裤,必定有缘故,不是皮裤太薄就是棉裤没毛,用 !anal…