注意:此问题之前已标记为重复。但它有些微妙的不同:other question询问两种语法之间的区别;虽然我知道在意义上没有区别,我在这种情况下会问为什么Java允许这两者。
为什么Java允许两者
int x[];
和
int[] x;
当我声明一个数组?
后者更有意义:变量名为x
,而不是x[]
,其类型为int[]
,而不是int
。为什么不强制执行呢?允许两种不同的语法似乎只会引起混淆和不一致。它甚至可以将二维数组声明为
int[] x[];
接近不可读。
是从C借来的吗? (无论如何,为什么C会这样做?)
答案 0 :(得分:2)
它被添加以帮助C程序员习惯Java。
在Java int[] x;
中是优先的方式。
答案 1 :(得分:2)
至少从规范来看,没有明确的理由存在两者。但是,如下两种方式都提供了一定的灵活性。使用一个变量,两个声明都将为您提供一个int数组。
在下列情况下,x和y都是数组:
int[] x, y;
x是一个数组而y不是:
int x[], y;
另见Oracle Java7 reference。他们还说不建议使用混合符号,注意完成以下示例:
float[][] f[][], g[][][], h[]; // Yechh!