哪一个是有效的陈述?
int[] x =new int[0]{};
new int[2];
int[] x=new int[][]int[][] x = new int[]{0}[0][0];
[0];
int x= new int[2]{}[];
正确答案是3,我可以理解为什么它不是1,2或5,但我不明白3或4的意思。
答案 0 :(得分:2)
1) int[] x =new int[0]{};
您不能同时指定长度0
和数组初始值设定项。
2) new int[2];
这不是声明。如果它被分配给其他东西,它将成为一种陈述,以及其他可能性。
3) int[] x=new int[][]1
[0];
这声明并初始化1x1 2D数组,其中4) int[][] x = new int[]{0}[0][0];
是唯一的元素。然后,数组访问用于立即访问位置0处的“行”,这是唯一的“行”,它本身是一个1长度的1D数组,并且被分配给1D数组。
5) int x= new int[2]{}[];
这里有很多错误。创建了一个1长度的1D数组,但它上面有两个数组访问。你只能提供一个,因为它是一维数组。
[]
额外的int
没有做任何事情,语法无效。即使它们已被删除,您也无法将int
数组分配给标量{}
。此外,您无法同时指定长度和数组初始值设定项{{1}}。
答案 1 :(得分:1)
{}
声明和初始化数组时,不允许您指明数组中的项目数{4}应为int[0]
。所以应该是int[]
。int[] x = new int[]{}
。int[] x = new int[2]
返回的数组是new int[][]new int[]{1}
[0]
,因此int[] x = new int[]{1}
。new int[]{0}[0][0]
试图从一维数组中获取二维数组的值,并将其分配给数组x
。 []
的数组,这是不可能的。