在数组声明int k,i和int k ,i;
在声明数组时,我们可以在标识符的任何一侧使用括号,但在这种情况下:
int[] k,i;
和
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)
在第一个示例中,括号与int关键字相关联,指定您要创建int数组。 在第二个中,指定int类型,然后声明一个int数组和一个int i。