【问题标题】:in array declaration int[] k,i and int k[],i;在数组声明 int[] k,i 和 int k[],i;
【发布时间】:2010-01-20 15:53:41
【问题描述】:

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

int[] k,i;

int k[],i;

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

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

【问题讨论】:

  • 请注意,在同一行声明两个变量通常被认为是不好的做法。我们倾向于在变量第一次使用时声明它们。
  • 你的意思是如果我有五个 int 类型变量,如 a、b、c、d、e。我应该像 int a 一样声明;诠释 b; ...
  • 没错。你应该给他们更好的名字。

标签: java arrays


【解决方案1】:

我的猜测如下:

声明int[] k 更合乎逻辑,因为它声明k 是一个int 的数组。因此,它是 Java 中首选的 (?) 样式。

另一方面,

int k[] 是声明这个数组的 C 方式(K&R 在声明语法方面有不同的理念——他们希望声明模仿对变量的访问)并且为了简化 C 程序员的过渡,这种语法也是允许的——没有害处。

现在,在您的上述声明中,您已经链接了两个声明。在第一种情况下,两个变量都声明为相同的类型——显然是int[]。但是,在第二个代码中,这种行为是违反直觉的(并且也不同于 C 的行为),因此具有其他语义。

请记住,这纯粹是猜测。

【讨论】:

【解决方案2】:

这样想:

(int[]) k, i

int (k[]), (i)

在第一个示例中,括号与 int 关键字相关联,指定您要创建 int 数组。在第二个中,您指定类型 int,然后声明一个 int 数组 k 和一个 int i。

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 2014-01-31
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多