为啥数组在通过其他更改数组的方法时打印不同? [复制]
Posted
技术标签:
【中文标题】为啥数组在通过其他更改数组的方法时打印不同? [复制]【英文标题】:Why is array printed differently when it goes through other method that changes the array? [duplicate]为什么数组在通过其他更改数组的方法时打印不同? [复制] 【发布时间】:2020-02-12 19:15:57 【问题描述】:你想得到的结果是 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。
【问题讨论】:
为什么要打印 4? @Guy 除非您了解它为什么适用于此,否则一般答案并不适用。 【参考方案1】:您正在 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));
【讨论】:
以上是关于为啥数组在通过其他更改数组的方法时打印不同? [复制]的主要内容,如果未能解决你的问题,请参考以下文章