看板 java 關於我們 聯絡資訊
底下是我遇到的一個bug... google過仍然不知道怎麼發生的,只好來板上請教了... 問題在 a[0][0] = b[1][1] 這一行上 我將b[1][1] 指定給a[0][0] , 但原本的b[0][0]卻會變成3 我的預期結果中 b只是複製a的值,但這兩個值是分開不會互相干擾的。 但是我用一維的陣列去測試卻沒有這個問題。 這樣...看得懂嗎="= int d[] = new int[2]; : a[0][0] = 0; : a[1][1] =3; : c[0] = 0; : c[1] =3; : b=a.clone(); : d = c.clone(); : System.out.println(a[0][0]); //0 : System.out.println(b[0][0]); //0 : a[0][0] = b[1][1]; : System.out.println(a[0][0]); //3 : System.out.println(b[0][0]);//3 : //expect a {{3,0} , {0,3}} b {{0,0} , {0,3}} : //actually a {{3,0} , {0,3}} b {{3,0} , {0,3}} : System.out.println(c[0]);//0 : System.out.println(d[0]);//0 : c[0] = d[1]; : System.out.println(c[0]);//0 : System.out.println(d[0]);//0 : //c{3,3} d{0,3} : System.exit(0); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.183.146
gmoz:請自己deep clone 05/10 10:58