我給了這兩個方法,當我運行question8時,它打印出「1 3」,但我不明白爲什麼。不應中的doSomething方法不影響在question8方法中的「ARR」陣列,因此打印出「2 4」爲什麼從其他方法修改原始數組?
private static void question8() {
int[] arr = {1,2,3,4};
doSomething(arr);
System.out.print(arr[1] + " ");
System.out.print(arr[3]);
}
private static void doSomething(int[] list) {
int[] b = list;
for (int i = 0; i < b.length; i++) {
b[i] = i;
}
}
你能否讓問題標題更有意義? –
更好嗎? @Alien先生 讓我知道:) – herteladrian
[是Java的「傳遞參考」?](http://stackoverflow.com/questions/40480/is-java-pass-by-reference) – Radiodef