问题标签 [pass-by-value]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
17 回答
199179 浏览

php - PHP 变量是按值传递还是按引用传递?

PHP 变量是按值传递还是按引用传递?

0 投票
11 回答
18166 浏览

language-agnostic - 通过引用传递还是通过值传递?

在学习一种新的编程语言时,您可能会遇到的一个可能的障碍是该语言是默认情况下是按值传递还是按引用传递

所以这是我向你们所有人提出的问题,用你们最喜欢的语言,它实际上是如何完成的?可能的陷阱是什么?

当然,您最喜欢的语言可以是您曾经玩过的任何语言:流行的晦涩的深奥的、的、旧的……

0 投票
92 回答
2379480 浏览

java - Java 是“按引用传递”还是“按值传递”?

我一直认为 Java 使用pass-by-reference

但是,我看到一篇博客文章声称 Java 使用pass-by-value

我不认为我理解他们所做的区分。

解释是什么?

0 投票
11 回答
111610 浏览

c++ - 在 C++ 中通过值传递还是通过常量引用传递更好?

在 C++ 中通过值传递还是通过常量引用传递更好?

我想知道哪个是更好的做法。我意识到通过常量引用传递应该在程序中提供更好的性能,因为您没有制作变量的副本。

0 投票
17 回答
52553 浏览

c++ - C++ - 传递对 std::shared_ptr 或 boost::shared_ptr 的引用

如果我有一个需要使用 a 的函数,shared_ptr将它的引用传递给它会不会更有效(以避免复制shared_ptr对象)?可能的不良副作用是什么?我设想了两种可能的情况:

1) 在函数内部,由参数制作副本,如

2)在函数内部只使用参数,如

在这两种情况下,我都看不到传递boost::shared_ptr<foo>值而不是引用的充分理由。按值传递只会“暂时”增加由于复制而导致的引用计数,然后在退出函数范围时减少它。我忽略了什么吗?

只是为了澄清一下,在阅读了几个答案之后:我完全同意过早优化问题,并且我总是尝试首先分析热点然后工作。如果您知道我的意思,我的问题更多是从纯技术代码的角度来看的。

0 投票
18 回答
793950 浏览

language-agnostic - 按引用传递与按值传递有什么区别?

和有什么区别

  1. 通过引用传递的参数
  2. 按值传递的参数?

请给我一些例子好吗?

0 投票
6 回答
7956 浏览

.net - VB.NET 中的引用

对我来说有些不清楚的是对 VB.NET 中的类的引用(指针?)。我要问的问题可以通过一些测试来回答,但我想知道是否有人可以发布一个体面的解释(或链接,也是)。

如果你创建一个类:

然后是一个实际使用这个类作为属性的类:

然后像这样使用它:

现在函数BooleanCheck将始终返回true,即使引用是UsingClass“按值”而不是按引用传递给新类的。因此,没有制作类的副本,但myReferencein 中的局部变量UsingClass仍然引用/指向Reference.RuntimeOrSomething

这怎么能优雅地解释呢?

0 投票
8 回答
12850 浏览

c - 对通过指针访问结构成员感到困惑

我是 C 新手,对通过指针引用结构成员时得到的结果感到困惑。有关示例,请参见以下代码。当我第一次引用 tst->number 时发生了什么?我在这里缺少什么基本的东西?

输出是:

0 投票
6 回答
103827 浏览

c++ - 在 C++ 中通过引用/值传递

我想澄清按值和按引用之间的区别。

我画了一幅画

在此处输入图像描述

因此,对于按值传递,

使用不同的引用创建相同对象的副本,并为局部变量分配新引用,因此指向新副本

如何理解这句话:“如果函数修改了该值,则修改也出现在调用函数的范围内,无论是通过值传递还是通过引用传递”

谢谢!

0 投票
5 回答
8915 浏览

java - Java,按值传递,引用变量

在以下示例中,我无法理解 Java 的“按值传递”操作:

我知道因为 s_ccc 是一个参考变量,所以当我将它提供给方法 calculate() 并在方法中对其元素进行一些更改时,即使在我离开该方法后更改仍然存在。我认为 t_ccc 也应该如此。它又是一个参考变量,我将它提供给方法calculate(),并在该方法中将t_ccc 的引用更改为s_ccc 的引用。现在 t_ccc 应该是指向一个数组的引用变量,该数组有一个 int 类型的元素等于 16。但是当方法 calculate() 离开时,似乎 t_ccc 指向它的旧对象。为什么会这样?改变不应该也保留吗?毕竟它是一个参考变量。

问候