黑马程序员技术交流社区
标题:
关于数组默认值的问题
[打印本页]
作者:
会飞De石头
时间:
2014-6-18 09:57
标题:
关于数组默认值的问题
本帖最后由 会飞De石头 于 2014-6-19 10:31 编辑
public void meth1() {
int[][] arr = new int[3][];
arr[0] = new int[3];
//arr[1] = new int[1];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
//System.out.println(arr[1][0]);
}
public void meth2(){
int[][] arr = new int[3][4];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[1][0]);
}
定义了两个方法,其中meth1没有对二维数组中的一维数组进行定义,结果在打印arr[1]结果不再相同;
meth1中为null;meth2中为地址值
,想问一下是怎么回事?或者内存分布有什么不同吗?
作者:
喜爱
时间:
2014-6-18 10:34
数组是对象,对于第一个方法meth1中,你只是将二维数组arr[0]赋值为一维数组new int[3],而没有将arr[1]赋值,其值就为null,而meth2方法中,在声明arr数组的时候,就已经将一维数组arr[1]赋值,其值为new int[4]。所以一个为null,一个为地址值。
作者:
小小菜鸟101
时间:
2014-6-18 11:01
二位数组的行是由列组成的,没有列,不能给行的开空间,也就没有地址了
作者:
唐坚
时间:
2014-6-18 13:28
哦啦
作者:
gyw520gyw
时间:
2014-6-18 22:29
沙发正解
作者:
亮~
时间:
2014-6-18 23:55
java 中 和c 语言 有点区别 c语言中 不允许出现[]array;
作者:
╭月牙湾湾╮
时间:
2014-6-19 00:03
学习
作者:
杨桦
时间:
2014-6-19 00:06
学习
作者:
会飞De石头
时间:
2014-6-19 10:31
喜爱 发表于 2014-6-18 10:34
数组是对象,对于第一个方法meth1中,你只是将二维数组arr[0]赋值为一维数组new int[3],而没有将arr[1]赋 ...
谢谢 表示理解了点
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2