int a[][] = new int[3][2]; 表示定义一个三行二列的二维数组,但是a[0] = {1,6}; 是对一维数组进行赋值,而a是二维数组无法使用一维数组的赋值方法,所以程序会报错。
该代码的正确方法应该是:
int a[][] = new int[3][2];
a[0][0]=1;
a[0][1]=6;
扩展资料
java定义二维数组的方法:
1、动态初始化
数据类型 数组名 [ ][ ] = new 数据类型[m][n]
数据类型 [ ][ ] 数组名 = new 数据类型[m][n]
数据类型 [ ] 数组名 [ ] = new 数据类型[m][n]
举例:int [ ][ ] arr=new int [5][3]; 也可以理解为“5行3例”
2、 静态初始化
数据类型 [ ][ ] 数组名 = {{元素1,元素2....},{元素1,元素2....},{元素1,元素2....}.....};
举例:int [ ][ ] arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},}
参考资料来源:百度百科——二维数组
因为你写的第一句是定义一个二维数组,第二句是一个一位数组赋值,而且你第二句是一维数组赋值语句的话是a[0]=1或a[0]=6,如果是给二维数组赋值的话是a[0][0]=1;a[0][1]=6;
你要搞清楚java中的数组名是引用,二维数组中,第一维中存着第二维的引用,类似于C中的指针,第二维中才放着数据。而如果第二维中放的数据是引用数据类型的话,那第二维中放的也是引用,指向存放引用数据类型的地址。
compiler会认为你在试图把a 看做一个一维数组。
正确是a[0][0] = 1; a[0][1] = 6
定义的是3行2列的数组啊!
为第一行赋值:
int a[][] = new int[3][2];
a[0][0]=100;
a[0][1]=200;
a[0][2]=300;