C++值传递和引用传递的区别

c++中参数传递的区别:

1.值传递:

可以想象改变的只是实参的“替身”的值,而实参本身不会被改变。

值传递:将实参的值传递给形参;形参是实参的“替身”,但与实参本质上不是“同一个人”,只是值复制过来一样而已。因此,形参有自己独立的存储空间。
在这里插入图片描述
当swap函数被调用时,为形参x,y分配存储空间,并且复制a,b的值过来,函数执行完毕之后,X,Y的值被调换,之后释放x,y的存储空间,并不会对a,b有任何影响。

2.引用传递

可以想象成是“同一个人”,只不过把名字换了换,但本质上还是同样的。

因此,引用并不分配独立的存储空间,它与目标变量共用内存空间。如果该引用不是用作函数的参数或者返回值,则必须提供该引用的初始值。
在这里插入图片描述
当swap之后,形参中的值被交换,则相应的实参的值也被改变。

说明:

使用引用传递可以通过形参的值直接改变实参的值,而使用值传递不可以。

参照文章:参照文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值