Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++引用作函数参数 | 传送变量的别名

C++引用作函数参数 | 传送变量的别名

原创
作者头像
小林C语言
修改于 2020-12-28 03:02:16
修改于 2020-12-28 03:02:16
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

C++引用作函数参数

C++之所以增加引用类型,主要是把它作为函数参数,以扩充函数传递数据的功能。 

小林在之前的推文中介绍过函数参数传递的两种情况。

  • 将变量名作为实参和形参,这时传给形参的是 变量的值,传递是单向的。如果在执行函数期间形 参的值发生变化,并不传回给实参。因为在调用函 数时,形参和实参不是同一个存储单元。 
  • 传递变量的指针,形参是指针变量,实参是一个变量的地址,调用函数时,形参指向 实参变量单元。

C++的这种虚实结合的方法仍然是值传递方式,只是实参的值是变量的地址而已,C++提供了向函数传递数据的第3种方法:传送变量的别名。

经典案例:C++实现传送变量的别名。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>//预处理
using namespace std;//命名空间 
int main()//主函数 
{
  void swap_Number(int &num1,int &num2);//函数声明 
  int i,j;//定义整型变量 
  i=4;//赋初值 
  j=7;//赋初值 
  swap_Number(i,j);//调用swap函数 
  cout<<"i="<<i<<endl;//输出交换后的i值 
  cout<<"j="<<j<<endl;//输出交换后的j值 
  return 0; //函数返回值为0;
} 
void swap_Number(int &num1,int &num2)//自定义交换值函数 
{
  int temp;//定义中间变量 
  temp=num1;
  num1=num2;
  num2=temp; 
}

执行本程序之后,会输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
i=7
j=4

--------------------------------
Process exited after 0.05149 seconds with return value 0
请按任意键继续. . .

留个问题给读者思考,这种传送变量的别名和使用指针变量作形参时有什么区别?

以上,如果你看了觉得对你有所帮助,就给小林点个赞叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~

C++引用作函数参数 | 传送变量的别名

更多案例可以go公众号:C语言入门到精通

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C++指针作函数参数 | 指针实现由大到小
在C++中,函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型,它的作用是将一个变量的地址传送给被调用函数的形参。
小林C语言
2020/12/14
8110
C++指针作函数参数 | 指针实现由大到小
C++ 引用与引用作为函数的参数
对一个数据建立一个“引用”,他的作用是为一个变量起一个别名。这是C++对C语言的一个重要补充。
chaibubble
2022/05/07
2.6K0
C++ 引用与引用作为函数的参数
C++引用分析实例与案例刨析及使用场景分析详解
可以修饰实参。本质:接收(int *const a ,int * const b) 传入(&a,&b),编译器自动把识别引用所以使用引用时只传入(a,b)即可。
CtrlX
2022/08/10
3240
C++引用分析实例与案例刨析及使用场景分析详解
C++参数传递
C++和Java、C#语言在参数传递的时候,最大的不同就是在 C++ 中,除非显式通过指针或引用传递,否则所有变量都通过值传递。在 C# 中,除非显式通过具有 ref 或 out 参数修饰符的引用传递,否则类通过引用传递,而结构通过值传递。Java中类通过引用传递,基本数据类型通过值传递。
卡尔曼和玻尔兹曼谁曼
2019/01/25
9870
C++参数传递
C语言到C++的OOP 面向对象编程
1、全面兼容C,C的许多代码不经修改就可以为Cpp所用,用C编写的库函数和实用软件可以用于Cpp。
小林C语言
2020/12/21
3.4K0
C语言到C++的OOP 面向对象编程
C语言 | 函数参数
以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~
小林C语言
2021/04/15
2.9K0
C语言 | 函数参数
c++之指针
在32位操作系统下,无论指针数据类型是什么数据类型,都是占4个字节,而在64位操作系统中占8个字节。
西西嘛呦
2020/08/26
5940
【C++】C++ 引用详解 ① ( 变量的本质 - 引入 “ 引用 “ 概念 | 引用语法简介 | 引用做函数参数 | 复杂类型引用做函数参数 )
" 引用 " 语法 是 C++ 语言中 特有的 , 在 C 语言中是没有 引用 这个概念的 ;
韩曙亮
2023/10/15
1.4K0
【C++】C++ 引用详解 ① ( 变量的本质 - 引入 “ 引用 “ 概念 | 引用语法简介 | 引用做函数参数 | 复杂类型引用做函数参数 )
C++入门
函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这
Jamo
2024/01/28
2690
C++入门
C和指针小结(C/C++程序设计)
C和指针 相关基础知识:内存的分配(谭浩强版) 1、整型变量的地址与浮点型/字符型变量的地址区别?(整型变量/浮点型变量的区别是什么) 2、int *p,指向整型数据的指针变量。 3、通过指针变量访问整型变量。 4、*p :指针变量p指向的存储单元(变量) 5、p = &a——>> *p = *&a 6、用指针作函数参数 7、调用函数中,由于虚实结合是采用单向的“值传递”方式,只能从实参向形参传数据,形参值的改变无法回传给实参。 8、引用一个数组元素可以用(1)下标法(2)指针法(占内存小,运行速度快) 9
互联网金融打杂
2018/04/03
6510
C和指针小结(C/C++程序设计)
C++指针变量作函数参数接收数组地址
在C++中,用指针变量指向数组元素时要注意: 指针变量p可以指向有效的数组元素,实际上也可以指向数组 以后的内存单元。
小林C语言
2020/12/16
1.1K0
C++指针变量作函数参数接收数组地址
C语言中函数参数传递的三种方式
(1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。 (2)传址,就是传变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。 (3)传引用,实际是通过指针来实现的,能达到使用的效果如传址,可是使用方式如传值。 说几点建议:如果传值的话,会生成新的对象,花费时间和空间,而在退出函数的时候,又会销毁该对象,花费时间和空间。 因而如果int,char等固有类型,而是你自己定义的类或结构等,都建议传指针或引用,因为他们不会创建新的对象。
全栈程序员站长
2022/07/02
5.1K0
C语言中函数参数传递的三种方式
第六章:C++中的指针和引用
在C++中,指针和引用是重要的概念,它们提供了灵活性和功能强大的方式来操作变量。本文将深入讨论C++中指针和引用的定义、使用场景以及它们之间的区别,并结合丰富的代码示例和实际案例来帮助您更好地理解它们。
GeekLiHua
2025/01/21
1640
C++ 练气期之解构函数
一个C++程序中,总是需要包含若干个函数,可以说函数是C++程序的基础组成元件,是程序中的头等公民。
一枚大果壳
2022/08/23
6860
C++ 练气期之解构函数
C++基础入门_C语言入门基础
​ Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开
全栈程序员站长
2022/09/30
5.9K0
C++基础入门_C语言入门基础
C++基础语法
包含了一个iostream的文件头。头文件作为一种包含功能函数、数据接口声明的载体文件,通常编译器通过头文件找到对应的函数库,把引用的函数实际内容导出来。
全栈程序员站长
2022/07/13
1K0
C/C++基础入门(持续更新中)
在一些时候(比如某个函数接受 int 类型的参数,但传入了 double 类型的变量),我们需要将某种类型,转换成另外一种类型。
浪漫主义狗
2022/09/23
4.5K0
C/C++基础入门(持续更新中)
编程语言中的值数据类型和引用数据类型之间的区别
2.值数据类型在参数传递中是值传递,也就是传递的值给形参,而在函数里形参的改变不影响实参的值;引用数据类型在参数传递中是引用传递,也就是传递的值是地址,而在函数里形参的改变会影响实参的值。当然,也可以将值数据类型的地址作为实参传给形参,这样也相当与是一种引用传递。
西西嘛呦
2020/08/26
7690
C++数组名作函数参数 | 求3*4矩阵中最大的值
C++中实参可以是表达式,而数组元素可以是表达式的组成部分,因此数组元素可以作为函数的实参,与用变量作实参一样,将数组元素的值传送给形参变量。
小林C语言
2020/12/01
1.7K0
C++数组名作函数参数 | 求3*4矩阵中最大的值
c语言指针的基本使用
指针(pointer)是C语言中一个重点和难点,以下是对其基本使用的一些总结,适合入门的同学。除了是对自己的学习的总结之外,也希望能对大家有所帮助。
梦飞
2022/06/23
9870
相关推荐
C++指针作函数参数 | 指针实现由大到小
更多 >
LV.4
这个人很懒,什么都没有留下~
交个朋友
加入[后端] 腾讯云技术交流站
后端架构设计 高可用系统实现
加入前端工作实战群
前端工程化实践 组件库开发经验分享
加入云原生工作实战群
云原生落地实践 技术难题攻坚探讨
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验