在数组声明int [] k,i和int k [],i;

时间:2010-01-20 15:53:41

标签: java arrays

在声明数组时,我们可以在标识符的任何一侧使用括号,但在这种情况下:

int[] k,i;

int k[],i;

将以两种不同的方式考虑。那是第一个创建两个数组k和i。 第二个创建一个数组k和一个正常变量i。这是什么行为?

java中的

编辑:通常我们更喜欢第一种声明。但在这种情况下,我们无法在单个语句中创建数组和原始变量。

2 个答案:

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