为什么这段代码可以编译通过?
int[] array = new int[][]{{1}}[0];
左边是一维数组。右边我认为是三维的,但实际上不是吗?
int[] array = new int[][]{{1}}[0];
左边是一维数组。右边我认为是三维的,但实际上不是吗?
右侧是一个一维数组,它是二维数组的第一个(0th)元素。
new int[][]{{1}}
int[] array = (new int[][]{{1}}) [0];// [0] is returning first row of 2D array
// which is 1D array so it can be assigned to `array`
// instantiate new 2D array
// ┌──────┸───────┑ ┌ access zeroth element of new 2D array
// │ │ │
int[] array = new int[][]{{1}} [0];
int[][] array2D = new int[1][1];
array2D[0][0] = 1;
int[] array = array2D[0];
int[][] array = new int[5][10]
可以通过,而 int[] = new int[3][2]
则不行。大小必须匹配,但在我的例子中,我认为它们并不匹配。 - Pawelint[] arrayX = new int[3][2];
不会编译,因为你试图将二维整数数组传递给一维数组。 - Pshemo
int[][]{{1}}
- 我看到两个方括号,所以我想这是一个二维数组。为什么会这样呢?你能解释一下吗? - Pawelint array = new int[]{1, 2, 4} [0];
。首先,数组被创建为三个元素,并且我选择从中选择第一个元素。它只是一个整数。 - Pawelnew int[][]{{1}}
(带或不带括号)是一个数组创建表达式,而尾随的[0]
只是选择刚创建的数组中索引为 0 的元素。 - Ted Hopp