(c++)函数的引用语法、使用、函数调用作左值

//引用的用途:可以利用引用用形参修饰实参,引用的语法比指针操作地址更加简单易懂。

//1.不要返回局部的引用 2.如果函数返回的是引用,则这个函数调用可以作为左值

#include<iostream>
using namespace std;
//引用的用途:可以利用引用用形参修饰实参,引用的语法比指针操作地址更加简单易懂。//1.不要返回局部的引用 2.如果函数返回的是引用,则这个函数调用可以作为左值int& test2()
{//为了让a不放在栈区,将其声明为静态变量static int s_a = 10;return s_a;//做完以上操作后  test2()就可以看成s_a了
}//引用传递交换数据,相当于创建了两个临时变量a1、b1来当作传入的a、b的别名.当然这里不用a1、b1,直接用也a、b一样。
void swap1(int& a1,int& b1)
{int temp = a1;a1 = b1;b1 = temp;
}
//地址传递交换数据
void swap2(int* a,int* b)
{int temp = *a;*a = *b;*b = temp;
}int main()
{cout << "直接返回后输出s_a=" << test2() << endl;test2() = 1000;//相当于变量m和test2()函数中的s_a是同一块内存的名字。相当于:m <=> s_a,操纵m相当于操纵s_acout << "函数作为左值重新赋值后s_a=" << test2() << endl;int& n = test2();cout << "返回给引用n后输出,n="<<n << endl;cout << endl;int a = 10;int b = 20;cout << "原始数据a=" << a << endl;cout << "原始数据b=" << b << endl << endl;swap1(a,b);cout << "引用传递后a=" << a << endl;cout << "引用传递后b=" << b << endl << endl;swap2(&a, &b);cout << "地址传递后a=" << a << endl;cout << "地址传递后b=" << b << endl << endl;system("pause");return 0;
}

需要注意的是,代码中的test2()函数经过执行后,再次调用就可以将test2()这个函数当成s_a这个变量了

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

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

相关文章

leetcode动态规划(十)-0-1背包理论基础(一维数组)

一维dp数组&#xff08;滚动数组&#xff09; leetcode中无纯0-1背包问题&#xff0c;可从卡码网上查看题目46.0-1背包问题 一维数组来源于二维数组&#xff0c;其本质是对一维数组进行压缩了&#xff0c;压缩后需要注意在进行背包容量循环的时候采用后序遍历&#xff0c;而不…

less 命令无法正确显示中文字符问题

less的配置文件通常是~/.lessfilter或~/.lessrc。你可以检查这些文件中是否有关于字符编码的设置。如果没有&#xff0c;可以添加以下内容到配置文件中&#xff1a; export LESSCHARSETutf-8&#xff08;设置字符编码为 UTF-8&#xff09;。 如果没有~/.lessfilter或~/.lessr…

世界500强,计算机校招月薪 1k ?

大家好&#xff0c;我是鸭鸭&#xff01; 周末闲来无事&#xff0c;鸭鸭又来互联网冲浪了&#xff0c;没想到刷到这么一张图&#xff1a; 现在校招给计算机应届生开出的薪资只有 1&#xff5e;1k 了吗&#xff1f;鸭鸭很难不怀疑这是打错字了。 根据图里信息&#xff0c;这应…

【数据库设计】逻辑结构设计

E-R实体集的转换 概念结构设计之后就是对E-R图进行逻辑结构设计&#xff1a;即将E-R图转化成关系的过程。逻辑结构设计主要用于数据库管理系统上&#xff0c;为了让数据在计算机系统中更好地表示。 此设计过程用到的数据模型有&#xff1a;除了前面讲过的关系模型还有层次模型…

双十一该买什么比较好?双十一推荐好物清单分享

​是不是很多朋友跟我一样&#xff0c;已经为双11做好了准备&#xff0c;打算开启买买买的节奏&#xff01;作为一名家居兼数码博主&#xff0c;每年双11的时候都会疯狂囤很多物品&#xff0c;所以今天就跟大家来分享一下&#xff0c;我的双11购物清单&#xff0c;也给大家参考…

数据结构部分混淆

1.随机存储和顺序存储&#xff1a; 随机存取&#xff1a;数组&#xff0c;当存储器中的数据被读取或写入时&#xff0c;所需要的时间与该数据所在的物理地址无关 顺序存取&#xff1a;链表&#xff0c;当存储器中的数据被读取或写入时&#xff0c;所需要的时间与该数据所在的物…

分享一份JSON数据格式商品详情数据详情示例

JSON数据格式的商品详情数据通常包含商品的多个层级信息&#xff0c;以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考&#xff1a; {"item": {"num_iid": "836392331271","title": "高腰阔腿牛仔裤女2024年新款…

Java:IDEA生成JavaDoc文档

有些开源项目并未直接提供api&#xff0c;但是通过从github、gitee下载项目可以手动生成Java文档。 步骤如下。 使用IDEA打开项目。 选择生成Java Doc文档&#xff1a; 第一步&#xff1a;选择生成JavaDoc文档的范围&#xff0c;我只对一个源文件生成Doc&#xff0c;所以选择…

鸿蒙开发超好用的 UI 组件和工具类库 BasicLibrary

大家好&#xff0c;我是 V 哥。你在学习HarmonyOS NEXT 开发吗&#xff0c;今天 V 哥给你推荐一款超好用的三方库BasicLibrary&#xff0c;BasicLibrary 是一个基于 API 11 封装的基本库&#xff0c;旨在提升鸿蒙开发效率。它包含了一些常用的 UI 组件和实用工具类&#xff0c;…

Java基础:面向对象编程8

1 Java 注解 1.1 概念 定义&#xff1a;注解&#xff08;Annotation&#xff09;是在 Java 1.5 时引入的概念&#xff0c;同 class 和 interface 一样&#xff0c;属于一种类型。作用&#xff1a;注解提供了一系列数据用来装饰程序代码&#xff08;类、方法、字段等&#xff…

【Lammps】拉伸模拟实验

【Lammps】拉伸模拟实验 一、代码二、解析&#xff08;1&#xff09;初始化&#xff08;2&#xff09;建模&#xff08;3&#xff09;力场设置&#xff08;4&#xff09;热平衡和压力平衡设置时间单位nve系综设置npt 系综设置 &#xff08;5&#xff09;拉伸模拟操作&#xff0…

git配置以及如何删除git

你努力学习和充实自己&#xff0c;除了提升自身的价值&#xff0c;最实际的是当遇到有喜欢的人和事的时候&#xff0c;除了一片真心&#xff0c;还有拿得出手的东西 作用 记录开发的历史&#xff0c;每次记录就是一个版本&#xff0c;而且可以回到历史的某个版本可以实现多人合…

Python中怎样用AKShare获取基金最新数据?

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…

浅谈普通学历编码学生代码编程之路--24程序员节

#1024程序员节 | 征文# 今夕已是2024年&#xff0c;楼主是一名大四学生 &#xff0c;即将进入社会&#xff0c;曾经总是拿码农来开程序员的玩笑 &#xff0c;也是也是幻想着成为一名码农啊&#xff0c;先说说个人学习Java之路 &#xff0c;从步入大学开始就是主学Java&#xff…

【MyBatis】MyBatis缓存原理详解

目录 一、简介 二、缓存类介绍 2.1 PerpetualCache 2.2 LruCache 2.3 BlockingCache 三、CacheKey 3.1 总结&#xff1a;二级缓存命中条件 四、一级缓存 五、二级缓存 5.1 二级缓存如何组装这些装饰器&#xff1f;&#xff08;解析SQL映射文件中的标签&#xff0c;初…

2025青海选调生报名指南及照片要求

第一步&#xff1a;用户信息注册&#xff0c;仔细阅读公告内容 第二步&#xff1a;人脸识别认证、上传照片 第三步&#xff1a;确认基本信息、照片确认 第四步&#xff1a;填写报考信息&#xff0c;请务必于11月5日18:00前提交 第五步&#xff1a;打印报名表&#xff0c;下载《…

.net framework 3.5sp1插件怎么安装

以下是在不同操作系统电脑上安装.NET Framework 3.5 SP1 的几种常见方法&#xff1a; 一、Windows 10 及以上操作系统&#xff1a; 1.在线安装&#xff08;需要网络连接稳定&#xff09;&#xff1a; 按键盘上的 Windows 键&#xff0c;键入 “Windows 功能”&#xff0c;然…

Linux网络编程(五)-什么是TCP/IP协议族全面解读

1.什么是TCP/IP协议族 在了解TCP和UDP之前&#xff0c;我们先了解TCP/IP协议族&#xff0c;首先这个协议族的的由来&#xff0c;在一开始很多电脑表达一个消息的方法可谓是多种多样&#xff0c;因为它们运行着完全不同的操作系统&#xff0c;这就像有不同口音&#xff0c;说不…

【9712】基于springboot+vue的校园台球厅人员与设备管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目描述 本次设计任务是要设计一个校园台球厅人员与设备管理系统…

基于java+springboot的大型超市数据处理系统

文章目录 前言技术介绍功能介绍核心代码数据库参考 系统效果图 前言 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;大型超市数据处理系统当然不能排除在外。大型超市数据处理系统是在实际应用…