首页 >常见问题 >传值和传址的区别是什么

传值和传址的区别是什么

coldplay.xixi
coldplay.xixi原创
2021-02-25 11:32:2015063浏览

传值和传址的区别:1、在传值中函数参数压栈的是参数的副本,任何的修改是在副本上作用,没有作用在原来的变量上;2、传址中压栈的是指针变量的副本,当你对指针解指针操作时,其值是指向原来的那个变量。

传值和传址的区别是什么

本文操作环境:Windows7系统,Dell G3电脑。

传值和传址的区别:

1、在传值中函数参数压栈的是参数的副本,任何的修改是在副本上作用,没有作用在原来的变量上。   

2、传址中压栈的是指针变量的副本,当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。   

520769de0393bfe2a5a004f204213c4.png

扩展资料

函数传参有三种传参方式:传值、传址、传引用。

1、按值传递

(1)形参和实参各占一个独立的存储空间。

(2)形参的存储空间是函数被调用时才分配的,调用开始,系统为形参开辟一个临时的存储区,然后将各实参传递给形参,这是形参就得到了实参的值。

2、地址传递

地址传递与值传递的不同在于,它把实参的存储地址传送给形参,使得形参指针和实参指针指向同一块地址。因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。

3、引用传递

引用传递是以引用为参数,则既可以使得对形参的任何操作都能改变相应数据,又使函数调用方便。引用传递是在形参调用前加入引用运算符“&”。

引用为实参的别名,和实参是同一个变量,则他们的值也相同,该引用改变则它的实参也改变。

相关免费推荐:编程视频课程

以上是传值和传址的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn