我有以下似乎可以编译的代码:
int[] arr = {1, 2};
int[][] arr2 = {arr, {1, 2}, arr};
int[][][] arr3 = {arr2};你能解释一下为什么最后一个语句是有效的吗?这里我们不是把一个二维数组分配给一个三维数组吗?
谢谢
发布于 2017-02-22 20:48:14
,这里不是把一个二维数组赋给一个三维数组吗?
如果你这样做,你是对的。
int[][][] arr3 = arr2;但是您在这里所做的int[][][] arr3 = {arr2};不是赋值的。您正在创建一个内部包含元素的数组。
添加元素和分配引用是两件不同的事情。
这是可行的,因为在名为arr3的数组中,有一个位于第0行和第0列的二维数组,这很好。
Inshort
int[][][] arr3 = {arr2};等于
int[][][] arr3 = new int[10][10][10];
arr3[0] = arr2;https://stackoverflow.com/questions/42391909
复制相似问题