在声明数组时,我们可以在标识符的任何一侧使用括号,但在这种情况下:
int[] k,i;
和
int k[],i;
将以两种不同的方式考虑。那是第一个创建两个数组k和i。 第二个创建一个数组k和一个正常变量i。这是什么行为?
java中的编辑:通常我们更喜欢第一种声明。但在这种情况下,我们无法在单个语句中创建数组和原始变量。
答案 0 :(得分:3)
我的猜测如下:
声明int[] k
更符合逻辑,因为它声明k
是 int
的数组。因此,它是Java中的首选(?)样式。
int k[]
是声明这个数组的C方式(K& R在声明语法方面有不同的理念 - 他们希望声明模仿访问为了缓解C语言程序员的过渡,这种语法也被允许 - 没有造成任何伤害。
现在,在上面的陈述中,你已经链接了两个声明。在第一种情况下,两个变量都以相同的类型声明 - 显然是int[]
。但是,在第二个代码中,这种行为会违反直觉(并且也与C的行为不同),因此具有其他语义。
请记住,这纯粹是猜测。
答案 1 :(得分:2)
这样想:
(int[]) k, i
int (k[]), (i)
在第一个示例中,括号与int关键字相关联,指定您要创建int数组。在第二个中,指定int类型,然后声明一个int数组和一个int i。