public class Array8 {
public static void main(String[] args) {
                  int[][] c ={{1,2}, {1,2,3}, {3,4}};
int[][] b = new int[3][];

System.arraycopy(c, 0, b, 0, c.length);
b[2][1] = 100;
for(int i =0 ; i < c.length; i++) {
for(int j=0 ; i < c[i].length; i++) {
System.out.print(c[i][j] + " ");
}
System.out.println();
}

}
结果只得到 1  1,怎么回事,该怎么改?

解决方案 »

  1.   


     for(int i =0 ; i < c.length; i++) {
                for(int j=0 ; j < c[i].length; j++) {
                    System.out.print(c[i][j] + " ");
                }
                System.out.println();
            }
      

  2.   

    呵呵,发现一个和我以前常犯的错误 
    for(int j=0 ; i < c[i].length; i++)  
    应该这样  for(int j=0 ; j < c[i].length; j++)
      

  3.   

    java中的for each循环也行的
    for(int i[]:c) {
                for(int j:i){
                 System.out.print (j+" ");
                
                }
            System.out.println();            
            }
      

  4.   

    记住这么几条, 不管多少维的数组都会了:
    1. 数组也是一种对象,跟Object,ArrayList这些类的对象是一样.
    2. 当数组的类型是primitive时,数组存放的是真实的值.
    3. 当数组的类型是类时,数组存放的是对象的reference.
    4. 对于二维数组,其第一维中每个位置存放的是一个一维数组的reference(因为数组也是对象).如此类推,多维数组也不难理解了.