java - Java为什么同时允许int x []和int [] x?

原文 标签 java c arrays

注:此问题以前标记为重复问题。不过,它有着微妙的不同:other question询问了这两种语法之间的区别;而我知道在含义上没有区别,在这种情况下,我要问的是为什么Java允许两者都有。
为什么Java同时允许

int x[];


int[] x;

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

几乎读不懂。
是从C借的吗?(无论如何,C为什么要这么做?)

最佳答案

至少从规范上看,两者都不存在明确的原因。然而,以下两种方式都提供了一定的灵活性。对于一个变量,两个声明都将为您提供一个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/

相关文章:

java - 如何使用正则表达式匹配以相反顺序排列的后两个字符为前两个字符的任何字符串

java - 如何以安全的方式分配方法名称(或注释元素)字符串?

c - 单指针和双指针附加之间的区别

c - ObjectName(参数)在结构OBJECT_ATTRIBUTE中引用什么?

javascript - 过滤Javascript中的对象

c - 具有malloc和realloc的C中的动态字符串数组不会退出循环

java - 如何以更简单的方式定义/实现泛型接口(interface)?

c - C struct自动初始化值,数组初始化

java - 为什么我要在Java中将方法定义为另一个变量,而不是整数?

java - 从安全沙箱(例如applet)中生成自定义类