Ниже приведена очевидная и обычная декларация и инициализация массива в Java.
int r[], s[]; //<-------
r=new int[10];
s=new int[10];
Очень похожий случай ведет себя по-разному, когда позиция [] изменяется в заявлении объявления, как показано ниже.
int []p, q[]; //<-------
p=new int[10];
q=new int[10][10];
Пожалуйста, ознакомьтесь с декларацией. Положение [] изменено с r[] на []p. В этом случае массив q ведет себя как массив массивов типа int (который полностью отличается от предыдущего).
Вопрос: Почему q, в этом объявлении int []p, q[]; рассматривается как двухмерный массив?
Дополнительная информация:
Следующий синтаксис выглядит неуловимым.
int []a[];
Это, однако, соответствует тонкому и ведет себя как int a[][]; или int [][]a;.
Следовательно, все случаи действительны.
int [][]e[][][];
int [][][][][]f[][][][];