The following is the obvious and usual array declaration and initialization in Java.
int r[], s[]; //<-------
r=new int[10];
s=new int[10];
A very similar case behaves differently, when the position of []
is changed in the declaration statement like as shown below.
int []p, q[]; //<-------
p=new int[10];
q=new int[10][10];
Please look at the declaration. The position of []
has been changed from r[]
to []p
. In this case, the array q
behaves like an array of arrays of type int
(which is completely different from the previous case).
The question: Why is q
, in this declaration int []p, q[];
treated as a two dimensional array?
Additional information:
The following syntax looks wonky.
int []a[];
This however, complies fine and just behaves like int a[][];
or int [][]a;
.
Hence, the following cases are all valid.
int [][]e[][][];
int [][][][][]f[][][][];