【问题标题】:What does 'passing a reference by value' mean?“按值传递引用”是什么意思?
【发布时间】:2013-09-28 02:23:38
【问题描述】:

https://stackoverflow.com/a/6044657/1165790

我的印象是有两种方法可以分配/调用事物: 1)按值(类型的实际位编码被分配/发送给变量/函数;2)按引用(数据位置的内存地址被分配/发送给变量/函数。

究竟是什么传递“按值引用”?

【问题讨论】:

    标签: language-agnostic


    【解决方案1】:

    这意味着您传递引用(本质上是指针抽象)的方式与传递任何其他原语的方式相同:按值。

    Passed by Value     Passed by reference
    ---------------     -------------------
    Integer             Object
    Reference           Object that the reference points to
    

    因为引用是按值传递的,所以您会得到与使用相同的行为 其他任何按值传递的东西;也就是说,您传递引用的函数使用引用的副本, 而不是实际的引用。

    所以如果你改变函数内的引用,函数外的原始引用不会改变。

    【讨论】:

    • 我明白了,这意味着通过指定引用是通过引用传递(间接)还是引用是通过值传递来更进一步 - 操纵引用不会改变原来的。
    【解决方案2】:

    这是文字游戏。引用内存地址,或者,严格来说,具有内存地址所有属性的抽象。所以按值传递引用就是你所说的:地址的位被传递给被调用者。在大多数计算机语言文本使用的更一般的说法中,这与说对象通过引用传递是完全相同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-22
      • 2011-12-28
      • 2013-05-31
      • 2013-10-30
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多