A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

定义一个二维数组
int[][] arr=new int[3][]{{7,3,3},{2,21,43},{4,6,2}};
为什么这种定义方式是错的??

如果这样定义 int [][]arr=new int[3][];如何给arr[0],arr[1],arr[2]分别赋值呢??

5 个回复

倒序浏览
二维数组中int[][] arr=new int[3][]建立的时候第一个数组引用指针是空的,并没有建立小数组,不能进行赋值
在这里就只能用
int [] [] arr =new int [3] [];
arr[0]= new int [3];
arr[1]= new int [3];
arr[2]= new int [3];
之后进行赋值。


回复 使用道具 举报
不论一维数组还是二维数组,当[]中有元素个数时,后面紧跟的{}中不允许给元素赋值的。是为了防止[]和{}元素个数不同。
可以
int [][]arr={{7,3,3},{2,21,43},{4,6,2}};
回复 使用道具 举报
本帖最后由 光sail 于 2012-4-28 00:17 编辑
  1. int[][] a=new int[3][3]; // 定义个三行三列的二维数组
  2. a[0][0]=1; //为第1行第1列添加元素

  3. a[0][1]=2; //为第1行第2列添加元素

  4. a[0][2]=3; //为第1行第3列添加元素

  5. a[1][0]=4; //为第2行第1列添加元素

  6. a[1][1]=5; //为第2行第2列添加元素

  7. a[1][2]=6; //为第2行第3列添加元素

  8. a[2][0]=7; //为第3行第1列添加元素

  9. a[2][1]=8; //为第3行第2列添加元素

  10. a[2][2]=9; //为第3行第3列添加元素



  11. for(int i=0;i<=2;i++)
  12. {
  13. for (int j = 0; j <=2; j++)
  14. {
  15. system.out.println(a[i][j]) }
  16. }
复制代码
打印输出  
1
2
3
4
5
6
7
8
9
回复 使用道具 举报
对于数组来说new就相当于为数组变量“赋值”了,后面在加大括号为其赋值就画蛇添足了,,所以两个不能同时存在,
至于要为数组赋值可以for或者while循环呀.
回复 使用道具 举报
对数组来说,定义了长度就不能再具体赋值,如果具体赋值的话就不能写长度了,int [][] aa=new int[3][];  或int [][] aa=={{7,3,3},{2,21,43},{4,6,2}};
或 int [][]aa=new int[][]{{7,3,3},{2,21,43},{4,6,2}};
这三种方式都是可以的,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马