我很难理解为什么一旦我声明了一个多维数组,如:
int t2[][] = new int[5][10] ;
我仍然可以像这样更改数组的长度:
t2[0] = new int[12];
我想过,一旦我们将数组声明为一定长度,我们就无法改变它。那怎么可能呢?
答案 0 :(得分:5)
从根本上说,二维数组只不过是一个数组数组。所以这个:
foreach-object
真的是这样做的:
int t2[][] = new int[5][10] ;
因此,实际上,您可以使用与分配任何其他数组元素相同的方式分配int t2[][] = new int[5][];
for (int i = 0; i < t2.length; i++)
{
t2[i] = new int[10];
}
。
注意:您没有通过说t2[x]
来扩展数组的长度。您正在创建一个新的,这意味着如果您对t2[0] = new int[12]
进行了任何分配,那么除非您自己复制它们,否则它们将会丢失。