C++入门【29-C++ 把引用作为返回值】
通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。C++ 函数可以返回一个引用,方式与返回一个指针类似。
当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。例如,请看下面这个简单的程序:
实例
#include <iostream>using namespace std;double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};double& setValues(int i) { double& ref = vals[i]; return ref; // 返回第 i 个元素的引用,ref 是一个引用变量,ref 引用 vals[i]
}// 要调用上面定义函数的主函数int main ()
{cout << "改变前的值" << endl;for ( int i = 0; i < 5; i++ ){cout << "vals[" << i << "] = ";cout << vals[i] << endl;}setValues(1) = 20.23; // 改变第 2 个元素setValues(3) = 70.8; // 改变第 4 个元素cout << "改变后的值" << endl;for ( int i = 0; i < 5; i++ ){cout << "vals[" << i << "] = ";cout << vals[i] << endl;}return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
改变前的值
vals[0] = 10.1
vals[1] = 12.6
vals[2] = 33.1
vals[3] = 24.1
vals[4] = 50
改变后的值
vals[0] = 10.1
vals[1] = 20.23
vals[2] = 33.1
vals[3] = 70.8
vals[4] = 50
当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。
int& func() {int q;//! return q; // 在编译时发生错误static int x;return x; // 安全,x 在函数作用域外依然是有效的}
相关文章:
C++入门【29-C++ 把引用作为返回值】
通过使用引用来替代指针,会使 C 程序更容易阅读和维护。C 函数可以返回一个引用,方式与返回一个指针类似。 当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。例如,请看下面…...
基于Java SSM框架实现企业车辆管理系统项目【项目源码】
基于java的SSM框架实现企业车辆管理系统演示 JSP技术 JSP技术本身是一种脚本语言,但它的功能是十分强大的,因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时,它可以使显示逻辑和内容分开,这就极大的方便了运动员的需求…...
MyBatis的配置及简单使用
1.配置myBatis 1.myBatis的作用 MyBatis 是一个开源的持久层框架,它的主要作用是简化数据库操作,使得开发者能够更方便地与数据库进行交互。 MyBatis 允许开发者使用简单的 XML 或注解配置 SQL 映射,从而实现数据库操作,而不需要…...
【UE Niagara学习笔记】07 - 火焰的热变形效果
目录 效果 步骤 一、创建热变形材质 二、添加新的发射器 2.1 设置粒子材质 2.2 设置粒子初始大小 2.3 设置粒子持续生成 三、修改材质 四、设置粒子效果 在上一篇博客(【UE Niagara学习笔记】06 - 制作火焰喷射过程中飞舞的火星)的基础上继续…...
深度学习模型中 argparse 模块Python 脚本的部分参数解读
尤其注意下面这句中的action"store_true"的作用解析: --resume_ckpt 是一个标志参数,它不需要附加值。如果将该参数作为命令行参数传递给脚本,则 resume_ckpt 的值将被设置为 True。action"store_true" 意味着如果在命令…...
在win10和Linux上配置SSH 无密码登录
文章目录 一、用途二、在本地机器上使用ssh-keygen产生公钥私钥对1)在Linux (或macOS) 上产生SSH公私钥的方法2)在win10上产生SSH公私钥的方法a)检查windows 本地是否安装有sshb)在本地生成SSH密钥对(公钥和私钥&#…...
【VUE】无法加载文件 \node\vue.ps1,因为在此系统上禁止运行脚本。问题解决
问题描述 在VS Code中输入vue create -p dcloudio/uni-preset-vue uniapp-demo命令时报错 无法加载文件 D:\address\node\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Executi…...
C //练习 4-12 运用printd函数的设计思想编写一个递归版本的itoa函数,即通过递归调用把整数转换为字符串。
C程序设计语言 (第二版) 练习 4-12 练习 4-12 运用printd函数的设计思想编写一个递归版本的itoa函数,即通过递归调用把整数转换为字符串。 注意:代码在win32控制台运行,在不同的IDE环境下,有部分可能需要…...
【python playwright 安装及验证】
python playwright pip install playwright pip install playwright -i http://mirrors.aliyun.com/pypi/simple/ playwright codegen -o script.py -b chromium --ignore-https-errors --viewport-size “2560,1440” --proxy-server “http://100.8.64.8:60497” https://w…...
极简云源码已经开源
源码介绍 极简云已经开源 解绑卡密 查询卡密 总体来说还是很完善的 对接例子网盘里有 用户注册需要配置邮箱 上网页QQ邮箱标准版开启SMTP 然后生成授权码 后台发信邮箱里填就对了 实在不会配置邮箱的 可以下载网盘里的reg.php 把reg.php上传源码里的user目录 之后注册就不需要…...
Shell中cp和mv命令说明
在Shell(如Bash)中,cp 和 mv 是两个常用的命令,用于处理文件和目录。它们的用法和作用如下: cp 命令 作用:cp(copy的缩写)用于复制文件或目录。基本用法:cp [选项] 源文…...
cssip 第11章 : 安全网络架构和保护网络组件
11.1 OSI模型 协议:定义数据如何通过网络介质传输。 11.1.1 OSI模型的历史 开发 OSI 协议是为给所有计算机系统建立通用的通信结构或标准。 OSI模型表示:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 11.1.3 封装/解…...
ITSS申报条件以及评审方式
01、四级申报基本条件: (1)具有独立法人地位; (2)已按照《运维服务能力成熟度》四级特征和关键指标建立了运维服务能力体系,且已有效运行三个月以上; (3)能…...
Qt中QByteArray之元素访问
访问QByteArray类对象中的某个元素主要有4种方式,分别为[]、at()、 data[]和constData[]。其中,[]和data]]方式为可读可写,at()和constData[]方式仅为可读。如果只是进行读操作,则通过at()和constData[]方式的访问速度最快,因为避…...
java实现教务管理系统
git地址:https://gitee.com/myshort-term/school-management 1.系统简介 开发教务管理系统程序,设计了ems(EMSApp)、dao(AssignmentDAO、CourseDAO、DeptDAO、ScoreDAO、UserDAO、EmailDAO)、domain&#…...
NPS配置https访问web管理页面
因为NPS默认也支持http的访问,所以在部署完后就一直没在意这个事情。 因为服务器是暴露在公网内的,所以还是要安全一点才行。不然一旦远控的机器被破解了就很危险了 一、使用nginx反向代理访问 1、首先在nps的配置文件里关闭使用https选项,…...
nginx和CDN应用
一、代理的工作机制 1.代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。 2.将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。 二、代理服务器的…...
Keil5如何生成反汇编文件
Keil5如何生成反汇编文件 在Keil5界面下点击选项,选择“User”,勾选“After Build/Rebuild”中“RUN #1”,复制fromelf --text -a -c --outputxxx.dis xxx.axf 在Linker栏中找到“Linker Control string”里最后-o后的.axf文件,将…...
网络地图服务(WMS)详解
文章目录 1.概述2.GetCapabilities3.GetMap4.GetFeatureInfo 阅读本文之前可参考前文:《地图服务器GeoServer的安装与配置》与《GeoServer发布地图服务(WMS、WFS)》。 1.概述 经过前文的介绍,相信我们对WMS/WFS服务已经有了一个非…...
【排序篇3】快速排序、归并排序
目录 一、快速排序1.1 递归1.2 非递归 二、归并排序2.1 递归2.2 非递归 一、快速排序 1.1 递归 快速排序的递归采用二叉树的前序遍历的思路,单趟排序先确定好一个元素的位置,然后往后递归再确定其他子区域内的某个元素的位置,直到只有一个元…...
避开ArcGIS地形标注3大坑:为什么你的等高线总像‘蚯蚓爬‘?(含DEM处理技巧)
避开ArcGIS地形标注3大坑:为什么你的等高线总像蚯蚓爬?(含DEM处理技巧) 在GIS制图领域,地形标注的质量直接影响地图的专业性和可读性。许多中级用户在使用ArcGIS进行等高线标注时,常常遇到标注模糊、曲线锯…...
终极指南:Kalibr视觉惯性标定中的外参初始化策略全解析
终极指南:Kalibr视觉惯性标定中的外参初始化策略全解析 【免费下载链接】kalibr The Kalibr visual-inertial calibration toolbox 项目地址: https://gitcode.com/gh_mirrors/ka/kalibr Kalibr作为一款强大的视觉惯性标定工具箱(The Kalibr visu…...
戴森球计划终极蓝图指南:从新手到专家的模块化工厂设计完全教程
戴森球计划终极蓝图指南:从新手到专家的模块化工厂设计完全教程 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 你是否曾在戴森球计划中面对复杂的生产线感到手…...
超市货架摆放的秘密:手把手教你用Excel和Power BI做购物篮分析,零代码也能玩转关联规则
超市货架摆放的黄金法则:用Excel和Power BI解锁购物篮分析实战指南 走进任何一家现代超市,货架上的商品陈列绝非随意摆放——每一处细节都暗藏数据驱动的商业智慧。当传统经验法则遇上大数据分析,零售商们发现了一个颠覆认知的事实࿱…...
三相静止无功发生器SVG并网仿真模型(附说明报告) 仿真带一份与仿真完全对应的31页Word报...
三相静止无功发生器SVG并网仿真模型(附说明报告) 仿真带一份与仿真完全对应的31页Word报告可结合仿真快速入门学习SVG [1]报告内容:原理说明及仿真详细说明和结果分析(详细看展示的报告内容) 1.基于电压定向的双闭环控…...
3步掌握VideoFusion:零基础一站式视频处理神器
3步掌握VideoFusion:零基础一站式视频处理神器 【免费下载链接】VideoFusion 一站式短视频拼接软件 无依赖,点击即用,自动去黑边,自动帧同步,自动调整分辨率,批量变更视频为横屏/竖屏 项目地址: https://gitcode.com/gh_mirrors/vi/VideoFusion 一、为什么选…...
VS Code + Flask新手避坑指南:从虚拟环境配置到第一个Hello World页面
VS Code Flask新手避坑指南:从虚拟环境配置到第一个Hello World页面 刚接触Flask框架的开发者常会遇到各种环境配置问题——虚拟环境切换失败、包导入报错、路由访问404……这些看似简单的坑往往让人耗费数小时。本文将用最小可行方案带你在VS Code中快速搭建Flas…...
TMI8260SP的替代品7889直流双向电机驱动芯片详解
在直流电机驱动领域,TMI8260SP作为一款经典的双向马达驱动芯片,曾广泛应用于各类中低功率电机控制场景,其稳定的性能积累了良好的市场口碑。但随着市场对电机驱动芯片的性能、功耗及性价比要求不断提升,7889直流双向电机驱动芯片凭…...
用74LS175D和面包板,手把手教你做一个四人抢答器(附完整电路图)
从零搭建四人抢答器:74LS175D芯片实战指南 在电子技术学习过程中,没有什么比亲手搭建一个实际可用的电路更能加深理解了。今天,我们将使用经典的74LS175D芯片,配合面包板、LED和按键开关,一步步构建一个功能完整的四人…...
UE5.3与Colosseum集成配置指南及常见问题解析
1. 环境准备:Windows系统下的基础配置 在开始Colosseum与UE5.3的集成之前,我们需要确保开发环境满足基本要求。我最近在Windows 11系统上完成了一次完整配置,实测下来这几个关键组件版本组合最稳定: 操作系统:Windows …...
