注意:此问题之前被标记为重复。不过,它略有不同:other question询问这两种语法之间的区别是什么;而我知道在含义上没有区别,在这种情况下我要问为什么 Java 允许两者。
为什么 Java 允许两者兼而有之
int x[];
和
int[] x;
什么时候声明数组?
后者更有意义:变量被称为x
,而不是x[]
,它的类型是int[]
,不是 int
。为什么不强制执行呢?允许两种不同的语法似乎只会引起困惑和不一致。它甚至似乎可以将二维数组声明为
int[] x[];
接近不可读。
它是从 C 那里借来的吗? (无论如何,为什么 C 会那样做?)
最佳答案
至少从规范来看,没有明确的理由说明两者都存在。但是如下两种方式都提供了一定的灵 active 。使用一个变量,两个声明都将为您提供一个 int 数组。
x 和 y 都是数组,当:
int[] x, y;
x 是一个数组而 y 不是,当:
int x[], y;
另见 Oracle Java7 reference .他们还说不建议使用混合符号,请注意以下示例:
float[][] f[][], g[][][], h[]; // Yechh!
关于java - 为什么 Java 允许同时使用 int x[] 和 int[] x?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26187569/