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

C++引用类型变量

引用变量的主要用途是用作函数的形参。这样函数将使用原始数据,而不是副本。除指针之外,引用也为处理大型结构提供了一种非常方便的途径。

再C++中使用&符号标识引用。也就是说C++给&符号赋予了另一个含义,将其用来声明引用。

引用的声明格式如下,并且rats和rodents指向了相同的值和内存单元

int rats;
int& rodents = rats;

引用的简单使用示例 

#include <iostream>using namespace std;int main()
{int rats = 101;int& rodents = rats;cout << "rats = " << rats << " ,&rats = 0x"<< &rats<< endl;cout << "rodents = " << rodents <<" ,&rodents = 0x"<< &rodents <<endl;rodents++;cout << "rats = " << rats << " ,&rats = 0x" << &rats << endl;cout << "rodents = " << rodents << " ,&rodents = 0x" << &rodents << endl;return 0;
}

引用的初始化示例

#include <iostream>using namespace std;int main()
{int rats = 101;int& rodents = rats;cout << "rats = " << rats << " ,&rats = 0x"<< &rats<< endl;cout << "rodents = " << rodents <<" ,&rodents = 0x"<< &rodents <<endl;int bunnies = 50;rodents = bunnies;cout << "rats = " << rats << " ,&rats = 0x" << &rats << endl;cout << "rodents = " << rodents << " ,&rodents = 0x" << &rodents << endl;cout << "bunnies = " << bunnies << " ,&bunnies = 0x" << &bunnies << endl;return 0;
}

这里截取一段该程序运行的结果图,进行说明:必须在引用声明的时候进行初始化。不能在初始化完成之后进行赋值操作。这种操作看起来好像是正确的。但是rodent变量的值从101变成了50,但是仔细看来rats变量的值也从101变成了50。这是因为rats和dodents的地址是一样的。而这两个地址和bunnies变量不同。所以该操作就等于是进行了如下赋值:rats=bunnies,也就是说将bunniese变量的值赋给了rats变量。所以可以通过初始化声明来设置引用,但不能通过赋值来设置。

从指针方面来理解等价于这样的操作:

int rats = 101;
int* pt = &rats;
int& rodents = *pt;
int bunnies = 50;
pt = &bunnies;

rodents初始化为*pt从而让rodents指向了rats,接下来将pt改为bunnies,并不能改变这样的事实。即rodents的引用是rats;

相关文章:

C++引用类型变量

引用变量的主要用途是用作函数的形参。这样函数将使用原始数据&#xff0c;而不是副本。除指针之外&#xff0c;引用也为处理大型结构提供了一种非常方便的途径。 再C中使用&符号标识引用。也就是说C给&符号赋予了另一个含义&#xff0c;将其用来声明引用。 引用的声…...

《C++23 新特性:现代软件开发的变革力量》

在软件开发的快速演进中&#xff0c;C作为一种强大且广泛应用的编程语言&#xff0c;不断推陈出新以适应日益复杂的开发需求。C23 的到来&#xff0c;为现代软件开发带来了诸多新的机遇和挑战。它的新特性不仅影响着开发者的编程习惯&#xff0c;也在代码效率、可维护性以及软件…...

Educational Codeforces Round 88 E. Modular Stability

题目链接 Educational Codeforces Round 88 E. Modular Stability 思路 对于任意的非负整数 x x x&#xff0c;我们要满足 x % a % b x % b % a x \% a \% b x \% b \% a x%a%bx%b%a。因为 a < b a < b a<b&#xff0c;所以只有 b b b为 a a a的倍数时才满足条件…...

Android中SurfaceView与GLSurfaceView 的关系

SurfaceView 与 GLSurfaceView 的关系 在 Android 开发中&#xff0c;SurfaceView 和 GLSurfaceView 是实现自定义渲染效果的关键组件。它们提供了不同的渲染方式&#xff0c;适用于不同的应用场景。我们将通过以下几个方面详细说明 SurfaceView 和 GLSurfaceView 的特点及实现…...

numpy——数学运算

一、标量——矢量 import numpy as npa 3.14 b np.array([[9, 5], [2, 7]])print(a) print(b)# ---------- 四则运算 ---------- print(a b) # np.add print(a - b) # np.subtract print(a * b) # np.multiply print(a / b) # np.divide 二、矢量——矢量 import nump…...

【工具】Charles对360浏览器抓包抓包

Charles 和 switchy sharp 配合&#xff0c;可以对 Chrome 进行抓包也可以配合对360安全浏览器抓包。 本文以Windows 电脑中的配置为例&#xff0c;介绍如何实现抓包。&#xff08;Mac中操作基本一致&#xff09; 1.安装Charles 可根据自己的电脑下载对应的版本&#xff1a;…...

【HarmonyOS】判断应用是否已安装

【HarmonyOS】判断应用是否已安装 前言 在鸿蒙中判断应用是否已安全&#xff0c;只是通过包名是无法判断应用安装与否。在鸿蒙里新增了一种判断应用安装的工具方法&#xff0c;即&#xff1a;canOpenLink。 使用该工具函数的前提是&#xff0c;本应用配置了查询标签querySch…...

Qt Designer客户端安装和插件集(pyqt5和pyside2)

GitHub - PyQt5/QtDesignerPlugins: Qt Designer PluginsQt Designer Plugins. Contribute to PyQt5/QtDesignerPlugins development by creating an account on GitHub.https://github.com/PyQt5/QtDesignerPlugins 一、下载客户端 https://github.com/PyQt5/QtDesigner/rel…...

基于边缘计算的智能门禁系统架构设计分析

案例 阅读以下关于 Web 系统架构设计的叙述&#xff0c;回答问题1至问题3。 【说明】 某公司拟开发一套基于边缘计算的智能门禁系统&#xff0c;用于如园区、新零售、工业现场等存在来访被访业务的场景。来访者在来访前&#xff0c;可以通过线上提前预约的方式将自己的个人信息…...

鸿蒙实现相机拍照及相册选择照片

前言&#xff1a; 1.如果你的应用不是存储类型或者相机拍照类型&#xff0c;你就需要用 kit.CameraKit Api 实现相机拍照和相册选择照片功能&#xff0c;如果你不用这个的话&#xff0c;你使用 picker.PhotoViewPicker &#xff0c;你就需要申请权限&#xff0c;那你提交应用审…...

「C/C++」C++17 之 std::filesystem::recursive_directory_iterator 目录及子目录迭代器

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

智能EDA小白从0开始 —— DAY30 冉谱微RFIC-GPT

在科技日新月异的今天&#xff0c;电子设计自动化&#xff08;EDA&#xff09;行业正以前所未有的速度推动着半导体产业的革新与发展&#xff0c;引领着全球电子产业迈向更加智能化、高效化的未来。作为EDA领域的佼佼者&#xff0c;冉谱公司始终站在技术创新的前沿&#xff0c;…...

Android -- 调用系统相册之图片裁剪保存

前言 最近线上反馈&#xff0c;部分vivo手机更换头像时调用系统相册保存图片失败&#xff0c;经本人测试&#xff0c;确实有问题。 经修复后&#xff0c;贴出这块的代码供小伙伴们参考使用。 功能 更换头像选择图片&#xff1a; 调用系统相机拍照&#xff0c;调用系统图片…...

读《道德经》让人感到心胸气闷?董仲舒篡改

为什么读《道德经》会让人感到心胸气闷&#xff1f;难道是董仲舒篡改所致&#xff1f; 作为世界智慧源头的《老子》&#xff0c;享誉古今中外&#xff0c;是世界历史上最伟大的著作之一。 然而&#xff0c;很多人读《道德经》时会感到心胸气闷&#xff0c;这究竟是为什么呢&am…...

D52【python 接口自动化学习】- python基础之模块与标准库

day52 标准库 学习日期&#xff1a;20241029 学习目标&#xff1a;模块与标准库 -- 67 标准库&#xff1a;Python默认提供的便携功能有哪些&#xff1f; 学习笔记 标准库中的常见组件 如何通过官方文档学习标准 from urllib.request import urlopen with urlopen(http://ww…...

基于yolov8的布匹缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; 基于yolov8的布匹缺陷检测系统&#xff0c;支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov8的布匹缺陷检测系统是在 PyTo…...

SQL Server 中,将单行数据转换为多行数据

在 SQL Server 中&#xff0c;将单行数据转换为多行数据通常涉及到将某个字段中的逗号分隔的值拆分成多行。这种操作通常称为“拆分”或“展开”&#xff08;Explode&#xff09;。以下是一些常用的方法来实现这一目标&#xff1a; 1. 使用内置函数 STRING_SPLIT 从 SQL Serv…...

解决数组两数之和问题与逻辑推理找出谋杀案凶手

给定一个整数数组nums和一个整数目标值target(2<nums.length<10^4)&#xff0c;请你在该数组中找出和为目标值target 的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返…...

uniapp的IOS证书申请(测试和正式环境)及UDID配置流程

1.说明 本教程只提供uniapp在ios端的证书文件申请&#xff08;包含正式环境和开发环境&#xff09;、UDID配置说明&#xff0c;请勿用文档中的账号和其他隐私数据进行测试&#xff0c;请勿侵权&#xff01; 2.申请前准备 证书生成网站&#xff1a;苹果应用上传、解析&#x…...

windows 安装apex_Nvidia Apex安装

参见windows 安装apex_Nvidia Apex安装 重点&#xff1a; 1、在安装前先检查一下&#xff0c;电脑的cuda版本和pytorch内的cuda版本是否一样&#xff0c;不一样的话就把低版本的进行升级&#xff1b; $ git clone https://github.com/NVIDIA/apex$ cd apex2、在保证cuda版本一…...

保姆级教程:用PyTorch复现STANet遥感变化检测模型(附LEVIR-CD数据集下载与配置)

从零实现STANet&#xff1a;基于PyTorch的遥感变化检测实战指南 开篇&#xff1a;为什么选择STANet进行遥感变化检测&#xff1f; 当我们需要监测城市扩张、灾害评估或基础设施变化时&#xff0c;遥感变化检测技术显得尤为重要。传统方法往往受限于光照变化和配准误差&#xff…...

ADI GitHub工程编译指南:以ADRV9009/ZC706为例,搞懂Tcl脚本工程的结构与自动化构建

ADI GitHub工程编译指南&#xff1a;深入解析Tcl脚本工程与自动化构建体系 当你在GitHub上打开Analog Devices的HDL仓库时&#xff0c;可能会被密密麻麻的Tcl脚本和Makefile文件搞得一头雾水。这种以脚本驱动的硬件项目组织方式&#xff0c;正逐渐成为开源硬件领域的标准实践。…...

用Claude Code+R零代码复现医学顶刊论文:零基础到掌握全流程医学SCI论文训练营

人工智能飞速发展&#xff0c;对于研究生、科研工作者而言&#xff0c;只需要聚焦研究问题创新&#xff0c;统计实操、图表制作、结果呈现等等SCI论文中涉及的工作都有工具可以帮你……我们团队最新开设&#xff1a;“零基础掌握SCI论文全流程&#xff1a;Claude CodeR零代码复…...

功能开关与远程配置:现代Web应用安全发布与动态控制实践

1. 项目概述&#xff1a;从“快乐工具包”到现代应用配置管理 如果你是一名前端或全栈开发者&#xff0c;最近在关注状态管理或应用配置&#xff0c;可能已经听说过 happykit/flags 这个名字。乍一看&#xff0c;它像是一个关于“旗帜”或“开关”的库&#xff0c;但它的核心…...

ARM嵌入式开发:硬件抽象层与调试监控技术解析

1. ARM嵌入式开发中的硬件抽象层与调试监控在ARM嵌入式系统开发中&#xff0c;硬件抽象层&#xff08;HAL&#xff09;和调试监控器是两大核心基础设施。它们如同汽车的底盘和仪表盘——HAL负责统一管理发动机、变速箱等硬件组件&#xff0c;而调试监控器则提供实时运行数据与交…...

别再手动调阈值了!OpenCV实战:用Otsu和自适应阈值搞定光照不均的图片分割

智能图像分割实战&#xff1a;Otsu与自适应阈值技术解决光照不均难题 在工业质检、医疗影像分析、自动驾驶等场景中&#xff0c;图像分割的准确性直接影响最终结果。但现实世界的光照条件往往复杂多变——同一张图片可能同时存在过曝和欠曝区域&#xff0c;传统全局阈值方法在…...

技术债务的职场政治:谁该为历史遗留问题买单

在软件测试从业者的日常工作中&#xff0c;技术债务是一个绕不开的话题。它像一颗隐藏在代码深处的定时炸弹&#xff0c;随时可能在项目推进的某个节点爆发&#xff0c;引发一系列连锁反应。而当技术债务问题浮出水面时&#xff0c;一场关于“谁该为历史遗留问题买单”的职场政…...

上古卷轴5天际整合包下载最新全热门MOD整合(画质+人物+功能+场景全美化)下载分享

一、整合包基础概况 新手向懒人专属整合资源&#xff0c;适配电脑Windows系统。整合包集成多款热门优质MOD&#xff0c;无需玩家单独下载模组&#xff0c;整合包整体兼容性强&#xff0c;适配主流家用电脑&#xff0c;官方提前做好模组适配优化&#xff0c;规避多数模组冲突问…...

memrok:专为开发者设计的命令行记忆管理工具,提升项目效率

1. 项目概述&#xff1a;一个面向开发者的记忆管理工具最近在整理个人知识库和项目代码时&#xff0c;我常常被一个问题困扰&#xff1a;那些零散但关键的代码片段、临时的配置参数、一闪而过的调试思路&#xff0c;到底应该记在哪里&#xff1f;用笔记软件太笨重&#xff0c;用…...

保姆级教程:在Ubuntu 22.04上从源码编译DPDK TestPMD并跑通第一个包转发测试

从零构建DPDK TestPMD&#xff1a;Ubuntu 22.04实战指南与性能调优 当你第一次听说DPDK能实现百万级数据包转发时&#xff0c;是否好奇这背后的技术魔法&#xff1f;本文将带你用一台普通Ubuntu服务器&#xff0c;亲手搭建这套高性能网络处理框架。不同于官方文档的抽象描述&am…...