gpt4 book ai didi

Java 函数中的数组赋值

转载 作者:行者123 更新时间:2023-12-01 18:33:04 27 4
gpt4 key购买 nike

public static void mystery(int[] arr) {
int[] tmp = new int[arr.length];
tmp[0] = arr[arr.length-1];
tmp[arr.length-1] = arr[0];
arr = tmp;
}

int[] a = {2,3,4};
mystery(a);

当我运行这个程序时,我发现即使在调用 Mystery(a) 之后,a 的值仍然是

a = {2,3,4};

Java 数组是可变的,所有参数都通过引用传递。既然方法中arr指向了方法结束后tmp中保存的内存,为什么a没有变化呢?

最佳答案

java更改方法的参数以引用其他对象不会对原始参数产生任何影响。因此执行mystery后a并不指向tmp。

要完成交换,您的 mystery 方法需要直接在 arr 上工作

关于Java 函数中的数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279647/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com