2 u010775468 u010775468 于 2016.04.24 13:56 提问

关于java中的二维数组的空间分配问题

在学习java的过程中,碰到这样一个问题
二维数组的问题:
首先1:
规则二维数组的几种写法,其中有一种:
int a[][] = new int[4][10];
这个我是知道的,分配一个4*10的空间
但是:
接下来却写到:
a[0] = new int[10];
a[1] = new int[10];
我不明白的是刚开始已经分配过空间了,为什么后来还要分配呢,望各位能解答
在下先谢谢各位了

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.24 14:02
已采纳

数组的数组的含义是,这是一个数组,数组的每个元素是一个数组。
数组的数组和二维数组的不同在于,数组的数组每个下标代表的数组可以不一样长,而二维数组是一样长的。
比如
int a[][] = new int[4][];
a[0] = new int[10];
a[1] = new int[5];
a[2] = null;
a[3] = new int[1];
这样是完全允许的。

caozhy
caozhy 回复键盘手C: 问题解决的话,请点下我回答右边的采纳,谢谢
一年多之前 回复
u010775468
u010775468 回复键盘手C: 哦哦,不好意思,我看到了
一年多之前 回复
u010775468
u010775468 谢谢啊,了解了,但是不明白的就是二维数组和数组的数组是怎么区分呢
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.04.24 14:00

int a[][] 这个不是二维数组,而是数组的数组
第一次初始化的是数组的数组
第二次初始化的是数组的数组中的一个元素,也就是数组

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!