传值调用与传址调用

简介: 传值调用与传址调用

一:引入

写一个函数,交换两个整型的值

发现并没有达到期待的结果,这是为什么呢?


发现在main函数的内部,创建了变量a和b,a的地址是 &a 0x0088f8a4,b的地址是0x0088f898 ,在调用Swap函数是,在函数内部创建了形参x和y,接收a和b的值,但x的地址是0x0088f7c0 ,y的地址是0x0088f7c4,与a和b的地址不同,只是接收了a和b的值,相当于x和y是独立的空间,在Swap函数内部交换x,y的值不会影响a,b的值.

二:传值调用

函数在使用的时候把变量本身直接传递给了函数,这种调用方式称为传值调用。

传值调用:实参传递给形参的时候,形参会单独创建一份临时变量来接收实参,对形参的改变不会影响实参。

比如

三:传址调用

如果使用指针将a,b的地址传递给Swap函数,Swap通过地址间接操作就可以交换a,b的值了,这种方式称为传址调用。


四:总结

当需要改变main函数中变量的值时,往往需要使用传址调用。

当比较,+,-,*,/,等不需要改变main函数中的值时,往往需要传值调用。




目录
相关文章
|
5月前
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
49 2
|
C++ Python
Python函数参数传递:传值还是传引用
Python函数参数传递:传值还是传引用
62 0
|
6月前
函数的形参
函数的形参
40 0
我应该使用按值调用还是按引用调用?
我应该使用按值调用还是按引用调用?
|
6月前
传址与传值
传址与传值
34 0
函数的传值调用和传址调用
函数的传值调用和传址调用
|
Python
调用函数时,关于传参那些事~
调用函数时,关于传参那些事~
105 0
|
编译器
【为什么】将指针传递给函数
【为什么】将指针传递给函数
|
C语言
【C语言函数调用详解】——传值调用&传址调用
【C语言函数调用详解】——传值调用&传址调用
432 0
|
C语言
函数传址调用的基本解析
函数传址调用的基本解析
110 0
函数传址调用的基本解析