做了一些多项选择,一个问题给出了以下数组定义,并询问哪些是有效的语句:
int[] array1, array2[];
int[][] array3;
int[] array4[], array5[];
A. array2 = array3;
B. array2 = array4;
C. array1 = array2;
D. array4 = array1;
E. array5 = array3;
正确的答案是A,B,E。为什么?我看到array3和array4是二维数组而array1,2,5不是。
答案 0 :(得分:8)
每行拆分每个变量的定义,然后你会意识到每个操作是如何编译的:
int[] array1;
int[] array2[]; //which is int[][] array2
int[][] array3;
int[] array4[]; //which is int[][] array4
int[] array5[]; //which is int[][] array5
现在,您可以轻松评估这些:
A. array2 = array3; //compiles
B. array2 = array4; //compiles
C. array1 = array2; //doesn't compile
D. array4 = array1; //doesn't compile
E. array5 = array3; //compiles
此外,在Java中,没有二维数组。你有阵列数组。
答案 1 :(得分:0)
int[] array1, array2[];
int[][] array3;
int[] array4[], array5[];
array1是单维数组
array2现在是2维数组以及array4和数组5 array3也被声明为2d数组
数组1不等于列表中的任何其他数组
数组2可以= array3,array4或array5,反之亦然。