引用参数和传值参数

本文详细介绍了两种常见的参数传递方式——值传递与引用传递,并探讨了它们在不同情况下的适用性。值传递通过复制实参来初始化形参,而引用传递则是让形参直接关联到实参,无需复制。此外还讨论了如何利用引用形参返回额外信息以及如何使用const引用避免不必要的复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数传递

第一种传递方式:值传递

值传递需要复制对应的实参实现初始化,当用实参副本初始化形参时,函数并没有访问调用函数所传递的实参本身,对实参副本的修改也是局部的,函数调用结束就结束了,因此不会修改实参的值。


第二种传递方式:引用传递

因为复制实参并不是在所有的情况下都适合,不适合复制实参的情况包括:

当需要在函数中修改实参的值时;

当需要以大型对象作为实参传递时,对实际的应用而言,复制对象所付出的时间和存储空间代价往往过大

当没有办法实现对象的复制时

 

引用形参直接关联到绑定的对象而非对象的副本,必须使用与该引用绑定的对象初始化该引用。引用形参完全以相同的模式工作。在c语言中,人们习惯用指针,在c++中使用引用。

 

使用引用形参返回额外的信息。这个跟上面有些类似,只不过说如果你想要多返回些东西,但是直接又没法返回,那么就借助引用好了,通过引用改变改变实参的值。

 

利用const引用避免复制。这个主要是大型对象的时候,复制代价比较高。比如string。。。

很多时候如果不需要改变值,就加上const
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值