黑马程序员技术交流社区

标题: 二维数组这样定义为什么不行呢? [打印本页]

作者: 石头stone    时间: 2016-5-16 22:22
标题: 二维数组这样定义为什么不行呢?
int[][] arr = new int[3][];
arr[0] = {1,2,3};
这样为什么会报错呢?
作者: static小白    时间: 2016-5-16 22:45
arr[0]=new arr[3];
作者: static小白    时间: 2016-5-16 22:56
int[][]arr= new int [3][];
arr[0][0]=1;
这样是可以的,只能一个一个数的赋值。
作者: zhangshouwei    时间: 2016-5-16 23:06
arr[0] = {1,2,3};错的不能动静结合
改为arr[0]=new int[]{1,2,3};
作者: 石头stone    时间: 2016-5-18 22:34
zhangshouwei 发表于 2016-5-16 23:06
arr[0] = {1,2,3};错的不能动静结合
改为arr[0]=new int[]{1,2,3};

懂了,谢谢
作者: Noodles.    时间: 2016-5-19 00:11
这是一个静态访问非静态的问题!
作者: 我是你岁哥❤环    时间: 2016-5-19 00:14
int[][] arr = new int[3][];只是在堆内存中开辟了3个存储一维数组的空间,但是并没有为每个一维数组开辟存储空间的大小
所以需要为每个一维数组初始化的时候,还需要使用new关键字,开辟存储元素的空间
arr[0] = new int[]{1,2,3};
作者: hycold    时间: 2016-5-19 00:31
学到了.........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2