我面臨在下面的代碼段一個奇怪的問題:的陣列變化而沒有任何命令中的值影響它
public class Main {
public static void main(String args[]){
int[] c = {0};
int[] a = c;
int[] b = c;
a[0] = 1;
b[0] = 2*a[0];
System.out.println(" a " + a[0]);
}
}
這將返回「2」,而不是「1」,意思是即使該操作只應該影響數組b的值,數組的值也會發生變化! 有誰知道這可能來自哪裏,以及如何解決它?
我不知道java中如何實現陣列。但是我的假設是'a = c'和'b = c'使得'a'和'b'引用與'c'相同的數組(即'a [0]'和'b [0] '實際上是相同的記憶位置)。 –
[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) – buhtz