为什么
int arr[][]=new int[5][];
宣言完全没问题但是
int arr[][]=new int[][5]
生成编译时错误?
请帮帮我。我无法理解为什么会这样?
答案 0 :(得分:10)
int arr[][]
(更通常写为int[][] arr
)是一个数组,其中每个元素都是对数组的引用。
new int[][5]
意味着“创建一个未知长度的数组,其中每个元素都是对数组的引用,每个数组长度为5”。显然,这没有意义。
另一方面,new int[5][]
表示“创建一个长度为5的数组,其中每个元素都是对数组的空引用”。