Java分配了二维阵列到三维阵列



我有以下代码,该代码似乎是编译的:

int[] arr = {1, 2};
int[][] arr2 = {arr, {1, 2}, arr};
int[][][] arr3 = {arr2};

您能解释一下为什么最后一个语句有效吗?我们不是在这里的三维数组分配二维数组吗?

谢谢

我们不是在这里为三维数组分配二维数组吗?

如果您这样做

您是正确的
   int[][][] arr3 = arr2;

但是您在这里所做的int[][][] arr3 = {arr2};没有分配。您正在创建带有元素的数组。

添加一个元素并分配参考是2种不同的事物。

工作是因为在您的数组中称为arr3,您在零行零和列列有一个2D数组,这很好。

inshort

int[][][] arr3 = {arr2};

等于

int[][][] arr3 = new int[10][10][10];
arr3[0] = arr2;

最新更新