2016 - 2024

感恩一路有你

传值和传址的区别 传值和传址的区别?

浏览量:1546 时间:2021-03-12 22:01:30 作者:admin

传值和传址的区别?

Passing value ByVal是将数值传递给形式参数。我将解释函数add(ByVal a为整数,ByVal B为整数)dim C为整数a1b=b1c=abadd=end,上面的函数是传递值的,也就是说,调用时,例如add(a,B)实际上等同于add(a,B)。例如,当AA=12:BB=3调用add(AA,BB)时,系统将把值12和3传递给函数“add”。结果是AA和BB的原始值保持不变,但地址不同。对于同一个函数,我将其改为地址传输模式:function add(byref,a as integer,byref)B as integer)dim C as integer=a 1b=B 1C=a Badd=cend函数此时,如果执行以下程序段:AA=12:BB=3add(AA,BB)print AA&“”& BB,您会发现它们的值发生了变化,因为传递值时数据是给函数的,所以函数不能修改AA和BB的数据。形象一点:你去查分数,别人把分数读给你看,这相当于把别人给你看的分数表的值传递给你(这时你可以读分数,你也可以修改分数)就是地址。这就是为什么当你检查分数时,你得到的是数值,而不是把你放在教育局自己的档案里。哈哈哈,希望对你有帮助。打这么多字真累人。给分数,哈哈哈

地址对原来的属性没有影响,因为原来的属性只是一个地址。价值转移根本没有效果。如果在方法中修改了地址中的对象,则原始属性会根据相同的地址找到对象,该地址在方法中发生了更改,然后将其提取为形式参数,影响实际参数

这样理解:

过程中的参数列表,我们称之为formal parameter

调用过程中的参数列表,我们称之为actual parameter

调用时需要修改参数列表,将实际参数值传递给formal parameters,这样进程就可以带着这些数据参与计算并实现一些函数

然后在传递过程中,有两种传递方式

传递值(ByVal)时,就是先为形式参数打开一个临时地址,将实际参数的内容传递到临时地址。这样,经过传递后,形式参数和实际参数在两个不同的地址,即它们是独立的

地址传递(byref)就是将参数的地址直接传递给参数。这样,参数和参数共享同一个地址。因此,参数内容的改变直接改变了参数的内容

通过以上分析,您只需要记住

与其他语言不同,python不允许程序员在传递参数时选择传递值或引用使用。

Python参数必须以“对象引用”的方式传递。

事实上,这种方法相当于价值转移和参考转移的结合。如果函数接收到对变量对象(如字典或列表)的引用,它可以修改对象的原始值—相当于通过“传递引用”传递对象。如果函数接收到对不可变对象(如数字、字符或元组)的引用,则不能直接修改原始对象,这相当于通过“传递值”传递对象。

参数传递的“传值”和“传址”有什么区别?

参数类型已知。按值传递和按地址传递都是函数参数,即将实际参数的值转换为形式参数的方法。规则是,当传输类型为type时,如果参数类型为type,则通过值传递参数。

2如果参数类型为type*,则按地址传递。

3. 如果参数类型多于类型*,例如类型**、类型**,则将按地址传递。请注意,类型本身可能是指针类型。例如,如果参数本身是char*,则值将被传输;如果要传输地址,则至少应使用char*。

传值和传址的区别 函数的传值调用 形参的传值用什么表示

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。