传值和传址的区别

 我来答
帐号已注销
2019-09-07 · TA获得超过25.9万个赞
知道小有建树答主
回答量:2206
采纳率:96%
帮助的人:76.7万
展开全部

区别:对形参的影响不同

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

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

扩展资料

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

1、按值传递

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

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

2、地址传递

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

3、引用传递

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

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





Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
卷帘青山H
高粉答主

2019-07-29 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:19.5万
展开全部

区别:

1、对实参的影响

传值:将实参的值传给形参后,实参与形参间便无任何联系,即形参的变化不会对实参产生任何影响。传值时,在形参前用 ByVal来界定。

传址(默认方式,也叫引用):形参与对应实参用相同的内存地址,形参的改变将影响实参,形参实际上是实参的别名。

例 : 按址传递

Private Sub Command1_Click() ‘按址传递

x = 10

y = 20

Cls

Print "x="; x, "y="; y, "调用前实参"

Call temp1(x, y)

Print "x="; x, "y="; y, "调用后实参"

End Sub

Sub temp1(x,  y) ‘按址传递

x = x + 100

y = x * 60

Print "x="; x, "y="; y, "调用过程中的参数"

扩展资料

VB中参数传递方式有两种:传值和传址。

例: 传值调用。

Private Sub Command1_Click()

Dim x as Integer,y as Integer

x=10

y=20

Print ″x=″;x,″y=″;y;

Call temp(x,y)

Print ″x=″;x,″y=″;y;

End Sub

Sub temp (ByVal x As Integer,ByVal y As Integer)

x=x+100

y=x*60

Print ″x=″;x,″y=″;y;

End Sub

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友39d0678df
推荐于2017-09-12 · TA获得超过468个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:306万
展开全部
传值:把A的数值传到B,改变B,A不会跟着变,B存的是跟A一样的值;
传址:把A的地址传到B,改变B,A同时跟着变,B存的只是A的地址(类似电脑的快捷方式)。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式