我開始學習JAVA,並試圖理解有關數組的東西。因此,在下面的代碼中,arr1
的元素已分配給arr2[1]
,在第二個循環中,arr2[row][col]
增加了。爲什麼在這個代碼示例中數組元素髮生了變化?
我只是在用調試器瞎搞,意識到arr1
的內容也隨着arr2[row][col]
一起遞增。
這可能是一個虛擬的問題,但我真的無法理解它,你可以詳細說明那裏的邏輯嗎?
public static void main(String[] args){
int[] arr1 = { 1, 2, 3, 4};
int[][] arr2 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
arr2[1] = arr1;
for (int row = 0; row < arr2.length; row++) {
for (int col = 0; col < arr2[row].length; col++){
System.out.print(arr2[row][col] + " ");
arr2[row][col]++;
}
System.out.println("");
}
}
相關:http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value – assylias