java,书上有一处不懂

img

img


我不太清楚输出为什么不输出0。
我认为程序定义了一个b[3][3]的数组,除了已经初始化的部分其他应该都用0代替,但为什么输出的时候不显示0,求解答,谢谢。

img


这个说法就错了,这里不是b[3][3],而是静态初始化一个不规则的数组,你可以理解成每一行都套一个一维数组,这3个一维数组长度不相同

你贴一下你的代码看看白

答案就在这里

img

没有定义一个int[3][3]数组,你可以打印一下b[k].length

首先案例中已经定义了数组里面的数[{1},{2,3},{4,5,6}],所以b[][]=[{1},{2,3},{4,5,6}]
如果是没有定义的,打印的也是null,不会是0
因为java语法中定义b[3][3]=null,如果要定义必须要先给初始值null,不然会报错的