1
3
你的问题与传递值无关*。你的问题是关于对象引用的。
将对象引用视为
中的值
这就像我们有一个
这个
在里面
之后
...它对
在(1)中,您将分配给
让我们按照第一个代码块进行操作,但我将使用
你的记忆中有这样的东西: +âââââââââââââââââ+ c: [Ref11325]âââ>| (Container) | +âââââââââââââââââ+ | className: null | | p: null | +âââââââââââââââââ+ +ââââââââââââââââââ+ p: [Ref21354]âââââââââââââââââââââââââââ>| (Person) | +ââââââââââââââââââ+ +ââââââââââââ+ | name: [Ref54312] |âââ>| (String) | +ââââââââââââââââââ+ +ââââââââââââ+ | "studName" | +ââââââââââââ+
(省略了许多细节;例如,字符串实际上是指
然后,当您这样做时:
你有(唯一的变化是
+âââââââââââââââââ+ c: [Ref11325]âââ>| (Container) | +âââââââââââââââââ+ | className: null | | p: [Ref21354] |ââ+ +âââââââââââââââââ+ | | \ +ââââââââââââââââââ+ p: [Ref21354]ââââââââââââââââââââââââââ+ââ>| (Person) | +ââââââââââââââââââ+ +ââââââââââââ+ | name: [Ref54312] |âââ>| (String) | +ââââââââââââââââââ+ +ââââââââââââ+ | "studName" | +ââââââââââââ+
看看怎么做
最后,当你这样做时:
+âââââââââââââââââ+ c: [Ref11325]âââ>| (Container) | +âââââââââââââââââ+ | className: null | +ââââââââââââââââââ+ | p: [Ref21354] |ââââââ>| (Person) | +âââââââââââââââââ+ +ââââââââââââââââââ+ +ââââââââââââ+ | name: [Ref54312] |âââ>| (String) | +ââââââââââââââââââ+ +ââââââââââââ+ | "studName" | +ââââââââââââ+ +âââââââââââââââââ+ p: [Ref34851]âââââââââââââââââââââââââââââ>| (Person) | +âââââââââââââââââ+ | name: null | +âââââââââââââââââ+
*“按值传递”和“按引用传递”是艺术术语,与将变量传递到函数时发生的情况有关:
在传递值中
价值
变量 |
2
1
|
3
0
执行此操作时:
的实例
执行此操作时:
这些变量中的“值”只是对象所在堆中的一种地址。 |
Tryer · 计算不同类别对象的数量 6 年前 |
Chris · 对传递值的工作原理可能存在误解 7 年前 |
Humam Helfawi · 按价值或参考传递容器 8 年前 |
Ethan · VBA:将值传递给属性调用 10 年前 |
g4ur4v · 将bool数组传递给函数 11 年前 |