问题标签 [call-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 投票
4 回答
12245 浏览

programming-languages - 什么是按需调用?

我想知道什么是按需调用。

虽然我在维基百科中搜索并在这里找到它:http ://en.wikipedia.org/wiki/Evaluation_strategy ,但无法正确理解。如果有人可以举例说明并指出按值调用的区别,那将是一个很大的帮助。

0 投票
5 回答
7690 浏览

java - 为什么修改了 ArrayList 参数,但没有修改 String 参数?

这输出:

在 的情况下ArrayList,将检索添加的元素。如果String方法调用对传递的字符串没有影响。JVM到底在做什么?谁能详细解释一下?

0 投票
2 回答
15455 浏览

c++ - Identify the greatest common divisor (GCD) of the two values using Euclid's Algorithm

My program asks a user for two numbers, and then I have to pass those numbers to my function. My function is supposed to "Identify the greatest common divisor (GCD) of the two values using Euclid's Algorithm. Return true if this value is greater than 1 and less than the smaller of the two numbers. Set the call-by-reference parameter to the value of the GCD. In main() output the GCD and whether or not your function returned true or false." How do I do this?

0 投票
1 回答
181 浏览

c++ - 为什么在这种情况下我的复制构造函数只调用了两次?

我有以下两个功能:

现在,当我只调用 foo(arg) 时,复制构造函数当然会被调用两次。当我单独调用 bar(&arg) 时,它只调用一次。因此,我希望

复制构造函数在这里被调用了 3 次。但是,它仍然只调用了两次。这是为什么?编译器是否认识到不需要另一个副本?

提前致谢!

0 投票
2 回答
151 浏览

c++ - 值调用|引用的另一个问题

这个问题很简单,之前可能已经讨论过,但我可以为我的案例找到一个明确的答案。假设我将指针对象传递给函数

然后函数是这样写的

问题:

那是一个call by value还是call by reference?我知道在按值调用中,将对象从 main() 复制到 bar() 会产生开销。所以我想确定这是一个call by reference.

0 投票
7 回答
1356 浏览

java - 按引用调用或按值调用

有人可以解释一下这个程序是如何执行的吗?

这是我似乎无法得到它的输出的代码:

我运行它时的实际输出是 4, 4。但根据我的理解,这应该是 5, 4。任何人都可以帮助理解这是如何执行的吗?

0 投票
3 回答
121 浏览

c - c代码中的混乱

我对这段代码有疑问,为什么我在 readMat() 中给出的值实际上存储在 a 和 b 中?

我的意思是这个调用不是按价值而不是按引用吗?

哦,如果还有其他我做错的事情,请告诉我。我会很感激的。

提前谢谢。

0 投票
3 回答
75 浏览

java - 修改对象集合

我正在使用一些 Java 代码,但我有疑问。我有一个循环沿着 Collection 使用方法修改它的每个对象。问题是,当您将对象传递给方法时,您真正传递的是什么?参考副本?内存地址?这是我的代码:

completeDesgloseAgrup 方法返回一个 DesgloseBDIVO 对象,因此我可以用新属性替换旧对象。但也许我可以通过这种方式做到这一点:

在这种情况下,该方法将是无效的并且不返回任何对象。有可能这样做吗?

问候

0 投票
3 回答
158 浏览

c - 如何在 C 中执行此程序?第 3.2-3.9 部分

是否需要多个条件,例如多个 if else 语句才能正确打印相交矩形?

Step 3: 两个矩形如果有共同的面积就相交 两个矩形不重叠如果它们只是接触(公共边,或公共角)</p>

当且仅当,两个矩形相交(如上所述)

i) max(xmin1, xmin2) < min(xmax1, xmax2) 并且

ii) 最大值(ymin1, ymin2) < 最小值(ymax1, ymax2)

您的输出将被格式化。如下图所示,其中一个矩形显示为其左下角坐标(xmin, ymin)和右上角坐标(xmax, ymax)。其中坐标是笛卡尔平面中的坐标。

样本输出:

代码:

0 投票
2 回答
361 浏览

c++ - C++11 右值和移动:遗留代码可以避免复制吗?

请理解我仍在学习 C++11 的移动和右值语义的概念。我的问题是遗留代码是否可以通过简单地使用 C++11 编译器和 STL 来避免不必要的复制。

这是一个非常简单的例子。此代码为给定字符串构建一个简单的字符频率表。例如,“apple”应该返回{('a', 1), ('e', 1), ('l', 1), ('p', 2)}. 正如您将看到的,我只是使用向量作为值。

很明显,当将向量作为值返回时,C++03 会生成所有复制代码(使用复制构造函数和赋值运算符)。在 C++11 中呢?std::vectora 有移动构造函数。这段代码可以避免任何不必要的副本吗?或者,我应该在上面的代码中使用&&还是std::forward在上面的代码中使用?

我试图调试内部 STL 代码,但很难说服。

注意:我的目标是尽量减少这些函数中不必要的副本。我知道我可以使用 new/pointers/references,但这需要解决内存泄漏问题。所以,我想尽可能多地使用值。