为什么Java允许int x []和int [] x?

时间:2014-10-03 22:20:49

标签: java c arrays

注意:此问题之前已标记为重复。但它有些微妙的不同:other question询问两种语法之间的区别;虽然我知道在意义上没有区别,我在这种情况下会问为什么Java允许这两者。

为什么Java允许两者

int x[];

int[] x;

当我声明一个数组?

后者更有意义:变量名为x,而不是x[],其类型为int[],而不是int。为什么不强制执行呢?允许两种不同的语法似乎只会引起混淆和不一致。它甚至可以将二维数组声明为

int[] x[];

接近不可读。

是从C借来的吗? (无论如何,为什么C会这样做?)

2 个答案:

答案 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!