在声明数组时,我们可以在标识符的任一侧使用方括号,但是有时:
int[] k,i;
and
int k[],i;
这会以两种不同的方式考虑。第一种创建两个数组k和i。第二种创建一个数组k和一个普通变量i。这种行为是什么意思?
编辑:在Java中,我们通常更喜欢第一种声明方式。但在这种情况下,我们无法在单个语句中创建数组和基本变量。
在声明数组时,我们可以在标识符的任一侧使用方括号,但是有时:
int[] k,i;
and
int k[],i;
这会以两种不同的方式考虑。第一种创建两个数组k和i。第二种创建一个数组k和一个普通变量i。这种行为是什么意思?
编辑:在Java中,我们通常更喜欢第一种声明方式。但在这种情况下,我们无法在单个语句中创建数组和基本变量。
我的猜测如下:
声明int[] k
更为合理,因为它声明了k
是一个int
数组。因此,在Java中这是首选的(?)风格。
另一方面,int k[]
是在C语言中声明该数组的方式(K&R对声明语法有不同的哲学观点——他们希望声明与变量的访问相似),为了方便C程序员过渡,这种语法也被允许——没有任何伤害。
现在,在您上面的语句中,您已经链接了两个声明。在第一种情况下,两个变量都声明为相同的类型——显然是int[]
。然而,在第二个代码中,这种行为会产生反直觉的结果(并且也不同于C的行为),因此具有其他语义。
请记住,这只是我的猜测。
(int[]) k, i
int (k[]), (i)