gpt4 book ai didi

java - 为什么当通过其他方法更改数组时,数组的打印结果会有所不同?

转载 作者:行者123 更新时间:2023-12-02 01:17:02 25 4
gpt4 key购买 nike

你应该得到的结果是0,但我不明白为什么?当数组通过其他方法传递时会发生更改。

public class Tester {
public static int function1 (int [] arr) {
arr= function2(arr);
return arr[0];
}
public static int[] function2 (int [] arr) {
arr = new int[4];
return arr;
}
public static void main(String[] args) {
int arr[] = {1,2,3,4};
System.out.print(Tester.function1(arr));
}
}

我期望打印的答案为 4。

最佳答案

您正在 function2 中创建一个全新的数组。这就是为什么默认情况下它在每个索引处存储 0。当您返回时,仅返回新数组。对于每个索引,它只会打印 0。为什么要在函数 2 中创建新数组?如果您必须打印 4,则只需传递现有数组并打印 arr[3] 即可。

这是代码:-

public class Tester {
public static int function1 (int [] arr) {
arr= function2(arr);
//return arr[0];
return arr[3];
}
public static int[] function2 (int [] arr) {
//arr = new int[4];
return arr;
}
public static void main(String[] args) {
int arr[] = {1,2,3,4};
System.out.print(Tester.function1(arr));
}
}

关于java - 为什么当通过其他方法更改数组时,数组的打印结果会有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405990/

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