pass-by-value相关内容

我应该在哪里更喜欢按引用传递或按值传递?

在什么情况下我应该更喜欢传递引用?传值? 解决方案 有五种主要情况你应该使用 pass-by-reference 而不是 pass-by-value: 如果您正在调用需要修改其参数的函数,请使用传递引用作为获得此效果的唯一方法(在这种情况下,我将传递引用和传递指针互换使用,尽管通过指针传递,您通常必须明确检查 nullptr.) 如果您调用的函数需要将大对象作为参数,请通过常量引用 ..
发布时间:2021-12-07 23:06:31 C/C++开发

在 C++ 中传递指针参数,按值传递吗?

在 C++ 中传递指针参数,按值传递吗?因为我看到对指针的任何更改都不会反映在方法之外.我通过取消引用指针所做的更改会得到反映. 在这种情况下,使用指向指针的指针作为函数的参数来修改函数内的指针值是否可以接受/标准程序? 解决方案 是的. 指针与其他任何东西一样按值传递.这意味着指针变量的内容(指向的对象的地址)被复制.这意味着如果您更改函数体中指针的值,该更改将不会反映在仍指 ..
发布时间:2021-12-07 23:01:48 C/C++开发

在 Python 中通过引用传递整数

如何在 Python 中通过引用传递整数? 我想修改传递给函数的变量的值.我读过 Python 中的所有内容都是按值传递的,但必须有一个简单的技巧.例如,在 Java 中,您可以传递 Integer、Long 等的引用类型. 如何通过引用将整数传递给函数? 最佳做法是什么? 解决方案 它在 Python 中不太适用.Python 传递对对象的引用.在您的函数中,您有一个对象— ..
发布时间:2021-12-07 22:49:46 Python

动态内存访问仅在函数内部有效

此问题旨在用作此常见问题解答的规范副本: 我在函数内部动态分配数据,一切正常,但仅限于发生分配的函数内部.当我尝试在函数外使用相同的数据时,我会遇到崩溃或其他意外的程序行为. 这是一个MCVE: #include #include void create_array (int* data, int size){数据 = malloc(sizeof(*data) * size);for ..

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

我想澄清按值和按引用之间的区别. 我画了一张图 所以,对于按值传递, 使用不同的引用创建相同对象的副本,并为局部变量分配新引用,因此指向新副本 如何理解单词:"如果函数修改了那个值,修改也会出现在按值和按引用传递的调用函数范围内" 谢谢! 解决方案 我认为不传达通过引用传递的含义会产生很多混乱.当有些人说通过引用传递时,他们通常指的不是参数本身,而是被引用的对 ..
发布时间:2021-12-01 15:15:36 C/C++开发

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

在 C++ 中是按值传递还是按常量引用传递更好? 我想知道哪种做法更好.我意识到通过常量引用传递应该在程序中提供更好的性能,因为您没有制作变量的副本. 解决方案 过去通常推荐的最佳实践1 对所有类型使用传递通过 const ref,除了内置类型(char、int、double 等),用于迭代器和函数对象(lambdas,从 std::*_function 派生的类. 在移动语义 ..
发布时间:2021-12-01 15:13:00 C/C++开发

如何将对象传递给 C++ 中的函数?

我是 C++ 编程的新手,但我有 Java 的经验.我需要有关如何在 C++ 中将对象传递给函数的指导. 我是否需要传递指针、引用或非指针和非引用值?我记得在 Java 中没有这样的问题,因为我们只传递保存对象引用的变量. 如果您还可以解释在何处使用这些选项,那就太好了. 解决方案 C++11 的经验法则: 按值传递,除非 你不需要对象的所有权,一个简单的别名就可以 ..
发布时间:2021-12-01 14:46:53 C/C++开发

C#中按引用或值传递对象

在C#中,我一直认为非原始变量通过引用传递,原始值通过值传递. 因此,当将任何非原始对象传递给方法时,在方法中对对象所做的任何事情都会影响正在传递的对象.(C# 101 的东西) 但是,我注意到当我传递 System.Drawing.Image 对象时,情况似乎并非如此?如果我将 system.drawing.image 对象传递给另一个方法,并将图像加载到该对象上,然后让该方法超出范 ..
发布时间:2021-12-01 09:23:51 C#/.NET

JavaScript 是否按引用传递?

JavaScript 是按引用传递还是按值传递? 这是 JavaScript:优秀部分.我对矩形函数的 my 参数感到非常困惑.它实际上是undefined,并在函数内部重新定义.没有原始参考.如果我把它从函数参数中移除,则内部区域函数无法访问它. 是闭包吗?但是没有返回任何函数. var shape = function (config) {var that = {};that.n ..
发布时间:2021-11-30 22:15:24 前端开发

JavaScript 按引用与按值

我正在寻找一些很好的综合阅读材料,了解 JavaScript 何时按值传递某项内容,何时按引用传递,以及何时修改传递的项会影响函数外的值,何时不影响该值.我还感兴趣的是,当分配给另一个变量时是按引用还是按值,以及这是否遵循与作为函数参数传递不同的规则. 我已经做了很多搜索并找到了很多具体的例子(其中很多都在 SO 上),从中我可以开始拼凑出真正的规则,但我还没有找到一个,好吧描述这一切的书面 ..
发布时间:2021-11-30 22:13:29 前端开发

JavaScript 是按引用传递还是按值传递语言?

原始类型(数字、字符串等)是按值传递的,但对象是未知的,因为它们都可以是按值传递的(以防我们认为持有对象的变量实际上是一个引用对象)和引用传递(当我们认为对象的变量保存对象本身时). 尽管最后并不重要,但我想知道什么是通过约定呈现参数的正确方法.是否有 JavaScript 规范的摘录,它定义了关于此的语义应该是什么? 解决方案 JavaScript 很有趣.考虑这个例子: f ..
发布时间:2021-11-30 21:42:19 前端开发

Java 是“传递引用"吗?还是“传值"?

我一直认为 Java 使用引用传递. 然而,我看到一篇博文声称Java使用pass按值. 我不认为我理解他们的区别. 解释是什么? 解决方案 Java 总是传值.不幸的是,当我们处理对象时,我们实际上是在处理称为引用的对象句柄,它们也是按值传递的.这种术语和语义很容易让许多初学者感到困惑. 事情是这样的: public static void main(Strin ..

Java 是“传递引用"吗?还是“传值"?

我一直认为 Java 使用引用传递. 然而,我看到一篇博文声称Java使用pass按值. 我不认为我理解他们的区别. 解释是什么? 解决方案 Java 总是传值.不幸的是,当我们处理对象时,我们实际上是在处理称为引用的对象句柄,它们也是按值传递的.这种术语和语义很容易让许多初学者感到困惑. 事情是这样的: public static void main(Strin ..

Java 是“传递引用"吗?还是“传值"?

我一直认为 Java 使用引用传递. 然而,我看到一篇博文声称Java使用pass按值. 我不认为我理解他们的区别. 解释是什么? 解决方案 Java 总是传值.不幸的是,当我们处理对象时,我们实际上是在处理称为引用的对象句柄,它们也是按值传递的.这种术语和语义很容易让许多初学者感到困惑. 事情是这样的: public static void main(Strin ..

数组是如何传递的?

数组是默认通过引用还是通过值传递?谢谢. 解决方案 它们作为指针传递.这意味着有关数组大小的所有信息都将丢失.建议您使用 std::vectors 更好,它可以根据您的选择按值或按引用传递,因此保留所有信息. 这是将数组传递给函数的示例.请注意,我们必须具体指定元素的数量,因为 sizeof(p) 会给出指针的大小. int add( int * p, int n ) {整数总计 ..
发布时间:2021-11-18 05:03:33 C/C++开发