传址与传值

简介: 传址与传值

这里将讲述传址与传值的区别,先见下图。
image.png
这是传值的过程,我们明明把a,b作为实参传过去了。可以看到,交换后的a,b并没有达到我们的预期。为什么会这样呢?其实是因为,传值的时候,形参是临时创建的,在执行完swap函数后,他们又自动销毁了,从而导致a,b的值并没有交换。如果想要改变实参的值,我们就需要进行传址,而不是传值。见下图
image.png
我们通过把a和b的地址传给了形参,形参就能通过地址,找到a,b,以此来改变a和b的值。此时我们的实参就改为&a和&b,注意swap函数的形参类型是int*,这样就能交换a与b的值啦。

总结:传值:形参是实参的一份拷贝,函数运行起来后,实参是实参,形参和实参没有任何关联,改变形参时,不会对实参造成影响。

       传址:形参是实参地址的一份拷贝,形参指向的实体是实参,对形参解引用后,拿到的内容就是实参,因此,对形参解引用后的内容进行修改,改变的就是实参。
目录
相关文章
|
5月前
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
48 2
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
61 0
|
6月前
|
C++
C++函数与值传递
C++函数与值传递
31 0
|
11月前
传值调用与传址调用
传值调用与传址调用
69 0
函数的传值调用和传址调用
函数的传值调用和传址调用
|
Python
调用函数时,关于传参那些事~
调用函数时,关于传参那些事~
104 0
|
JavaScript Java PHP
被小看的面试题 - 传值 or 传引用
前几天一个正在找工作的朋友发来一个面试题,感觉挺有意思的今天发出来大家一起乐呵乐呵。
82 0
被小看的面试题 - 传值 or 传引用
细说值传递、引用传递和地址传递
细说值传递、引用传递和地址传递
C | 传值调用&传址调用(进阶版)
调用函数有两种方式,传值调用和传址调用,其中包含很基础很基础的细节,一定要掌握!
126 0
C | 传值调用&传址调用(进阶版)
|
C语言
传值调用
传值调用
54 0