如何区分传值与传址

 我来答
股城网客服
2023-01-07 · 专注科普财经基础知识
股城网客服
向TA提问
展开全部

区别:对形参的影响不同

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

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

扩展资料

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

1、按值传递

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

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

2、地址传递

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

3、引用传递

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

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





诺珠依暮雨
2020-11-20 · TA获得超过1283个赞
知道小有建树答主
回答量:1179
采纳率:100%
帮助的人:4.9万
展开全部
就一般而言,值传递时使用的是
局部变量
,地址传递时使用的是
全局变量
。另,要搞懂这个问题建议你读一下《汇编语言设计》与《
编译原理
》。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
礼福伍忻畅
2019-09-03 · TA获得超过1014个赞
知道小有建树答主
回答量:1198
采纳率:100%
帮助的人:5.6万
展开全部
楼上说的貌似不是很严谨吧
地址传递的时候不一定要用全局变量
值传递也不一定要用局部变量
貌似跟变量没什么关系吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式