传址与传值

简介: 传址与传值

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

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

       传址:形参是实参地址的一份拷贝,形参指向的实体是实参,对形参解引用后,拿到的内容就是实参,因此,对形参解引用后的内容进行修改,改变的就是实参。
目录
相关文章
|
9月前
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
43 0
|
6月前
传值调用与传址调用
传值调用与传址调用
51 0
|
11月前
|
C++
函数的传值调用和传址调用
函数的传值调用和传址调用
|
12月前
|
Python
调用函数时,关于传参那些事~
调用函数时,关于传参那些事~
86 0
|
12月前
|
编译器
【为什么】将指针传递给函数
【为什么】将指针传递给函数
|
C语言
【C语言函数调用详解】——传值调用&传址调用
【C语言函数调用详解】——传值调用&传址调用
258 0
|
JavaScript Java PHP
被小看的面试题 - 传值 or 传引用
前几天一个正在找工作的朋友发来一个面试题,感觉挺有意思的今天发出来大家一起乐呵乐呵。
68 0
被小看的面试题 - 传值 or 传引用
|
PHP 开发者
变量传值| 学习笔记
快速学习变量传值。
64 0
C | 传值调用&传址调用(进阶版)
调用函数有两种方式,传值调用和传址调用,其中包含很基础很基础的细节,一定要掌握!
99 0
C | 传值调用&传址调用(进阶版)
|
存储 C语言
指针妙用之将函数中形参的值传递给实参
指针妙用之将函数中形参的值传递给实参

热门文章

最新文章