pass-by-value相关内容

按值将数组传递给函数

以下是C Programming Just the FAQs一书的片段.这是不是因为数组永远不能按值传递? VIII.6:如何将数组按值传递给函数? 答案: 可以通过声明将数组按值传递给函数被调用函数数组名带方括号([ 和 ])附在最后.当调用函数,只需传递地址数组(即数组的名称)到被调用的函数.例如,以下程序传递数组x[] 到名为的函数byval_func() 按值: int[ ..
发布时间:2021-11-18 01:31:47 其他开发

PHP 中的数组是作为值复制还是作为新变量的引用复制,以及何时传递给函数?

1) 当数组作为参数传递给方法或函数时,是按引用传递还是按值传递? 2) 给变量赋值时,新变量是对原数组的引用,还是新拷贝? 这样做怎么样: $a = array(1,2,3);$b = $a; $b 是对 $a 的引用吗? 解决方案 有关问题的第二部分,请参阅 手册的数组页面,其中说明(quoting) : 数组赋值总是涉及值复制.使用引用运算符通过引用复制数组. ..
发布时间:2021-11-18 01:09:45 PHP

为什么我的列表中的所有值都相同?

在 java 中,我试图用一堆不同的对象填充一个列表.但实际情况是,每次我向列表中添加另一个对象时,列表中的所有对象都会变成相同的东西. 有问题的代码: 私有静态ArrayList甲板 = 新的 ArrayList();私有静态无效 setupDeck(){for(int i = 0; i 什么时候 deck.add(new Card(i,j)); 我的列表中已有的被调用对象正在变 ..
发布时间:2021-11-18 00:48:49 Java开发

如何不通过引用将元素从 ArrayList 复制到另一个?

我正在尝试将每个元素从一个 ArrayList (av) 复制到另一个 (copia).问题是它们是通过引用复制的,所以每当我对原始副本进行任何更改时,副本也会被修改.当然,这种行为是不想要的.这个方法应该怎么写? public void copiarArrayList(ArrayList copia, ArrayList av){copia.clear();for (int i = 0; i ..
发布时间:2021-11-17 23:42:27 Java开发

Python:按值调用和按对象调用有什么区别?

许多人说在 Python 中,函数的参数是使用按值调用模型传递的.据我了解,它实际上不是一种按值调用的语言,而是一种按对象调用或按共享调用的模型. 按值调用模型和按对象调用模型有什么区别?什么是 Python 中显示这些模型有何不同的示例? 解决方案 说不是传值是不正确的.在语义上,它是传值,并且可以证明它与其他传值语言之间的语义等价.但是,它属于值传递语言的一个特定子类别,其中所有 ..
发布时间:2021-11-17 05:36:46 Python

将对象从 Activity 传递到 Fragment 是通过引用传递

当我们使用 Serializable 和 Parcelable 在 activities 之间传递对象时,然后一个 对象的副本/值发送到接收 activity(典型的按值传递行为). 但是为什么当我们在 Bundle 中将对象作为 Parcelable 传递给 Fragments 时,由于某种原因它们被发送为 对象的引用而不是对象的副本/值(通过引用行为).我还没有检查过Serializab ..

在 Java 中使用数组和引用类型别名

关于此,SO 上有许多类似的问题,但我无法找到明确列出别名差异的答案,所以我在这里提问. 我知道一个简单的原始赋值语句复制值: int x = 1;int y = x;x = 2;标准输出.print(x);//打印 2标准输出.print(y);//打印 1 然后我被告知在赋值语句中数组是“别名"的.所以: int[] x = {1, 2, 3, 4, 5};int[] y = x; ..

使用传值更新实际值

我想知道是否有任何方法可以通过值传递来更新原始值. 我也想知道我是否可以将更新后的地址返回给主 这里我不想使用引用传递来交换 main 中的原始值. #includeint a = 100;int f = 200;int *p, * q;交换(整数,整数);主要的(){printf("%d %d\n", a,f);交换(a,f);printf("%d %d\n",a ,f);//这里 ..
发布时间:2021-06-14 19:54:10 其他开发

一些更新从方法中被丢弃

我有一组从一个 BaseObject 继承的对象,这些对象具有一些全局原始属性(索引等).现在,我有两个对象,其中一个(目标一个)仅具有基本属性的值,另一个(源,它是一组对象中的一个)具有所有其他属性的值(从第三个派对应用),但基础的. 我试图将所有源对象的属性复制到目标对象,但保留目标的基本属性值.换句话说——我试图在不删除任何东西的情况下使两个对象的属性值相等……目标 = 源;只会删除目 ..
发布时间:2021-06-14 19:54:04 C#/.NET

Java 中的参考

我正在阅读有关如何在 java 中只能按值传递以及交换两个对象的内容的唯一方法是将 then 放入数组中...按值传递对数组对象的引用,然后使用对交换 0-1 数组位置的引用. 但我还有一个问题:假设我创建了一个数组,例如: List数组 = 新的 ArrayList();整数 a = 新整数 (1);数组添加(一); 所以我的问题是当我将一个对象“添加"到一个数组中时(在这种情况下是 ..
发布时间:2021-06-14 19:54:01 Java开发

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

我是 C 新手,对通过指针引用结构成员时得到的结果感到困惑.有关示例,请参见以下代码.当我第一次引用 tst->number 时发生了什么?我在这里缺少什么基本的东西? #include #include 类型定义结构{整数;} 测试;Test* Test_New(Test t,int number) {t.number = 数字;返回 &t;}int main(int argc, char** ..
发布时间:2021-06-14 19:53:58 其他开发

如何使字符串数组与交换函数交换它的组件?

问题是这段代码不会交换这两个字符串.我是编程新手,但我可以看出问题在于交换函数,但我不知道如何修复它. 我尝试在交换中添加 strcpy 而不是“=",但没有奏效. #include #include 无效交换(char *t1,char *t2){图表;t=t1;t1=t2;t2=t;}int main() {char *s[2] = {"你好", "世界"};交换(s[0],s[1]) ..
发布时间:2021-06-14 19:53:55 其他开发

任何编译器实际上会忽略这些副本吗?

给定 struct Range{Range(double from, double to) : from(from), to(to) {}双从;双到;//如果这对编译器很重要,我们可以在此处添加更多字段以使复制成本高昂};结构框{框(范围x,范围y):x(x),y​​(y){}范围 x;范围 y;}; 有人说在Box box(Range(0.0,1.0),Range(0.0,2.0)),编译器 ..
发布时间:2021-06-14 19:53:53 C/C++开发

按值将列表传递给函数

我想按值将列表传递给函数.默认情况下,列表和其他复杂对象通过引用传递给函数.这是一些目标: def add_at_rank(ad, rank):结果_ = copy.copy(ad).. 用 result_ 做点什么返回结果_ 这个可以写得更短吗?换句话说,我不想改变广告. 解决方案 您可以使用 [:],但是对于包含列表(或其他可变对象)的列表,您应该使用 copy.deepcopy( ..
发布时间:2021-06-14 19:53:48 Python

是否有简单的PHP代码来区分“将对象作为引用传递"?vs “将对象引用作为值传递"?

这与问题有关:“如何"?&"运算符在 PHP 函数中工作? 是否有简单的代码来显示两者之间的区别 将对象作为引用传递 对比 将对象的引用作为值传递? 解决方案 您可以通过引用将变量传递给函数.这个函数就可以修改原来的变量了. 可以在函数定义中通过引用定义段落: ..
发布时间:2021-06-14 19:52:37 PHP

将对象引用传递给方法

如果在 changedetails() 中将 Employee 引用设为 null,则保留变量 id 值并且不抛出 NullPointerException(代码 1)可能是因为我们只是传递了对象引用的副本,但在代码 2 中为什么变量值改变了 代码 1: public class JavaPassing {公共静态无效更改详细信息(员工 e){e=空;}公共静态无效主(字符串参数[]){E ..
发布时间:2021-06-14 19:52:22 Java开发

c/c ++中何时通过引用传递和何时通过值传递

可能的重复: 是否更好C++是按值传递还是按常量引用传递? 何时通过引用和什么时候在 C++ 中通过指针传递? 我对 c 和 c++ 相当陌生,我有以下关于将参数传递给函数的问题,我认为最好在这里提问并直接从大师那里获得知识的来源. 什么时候应该按值传递参数,什么时候应该按引用传递?而现实世界中最常用的方法是什么? 提前致谢. 解决方案 首选通过引用传递,通常是以下一 ..
发布时间:2021-06-14 19:52:13 C/C++开发