int[] table = new int[10],x;是有效语法吗?

int[] table = new int[10],x; is valid syntax?

当我初始化一个新数组时,我注意到如果我放置一个 ,x 它仍然可以编译。我不确定这里发生了什么。

int[] table = new int[10],x;
for(int x=1; x<11; x++){
    System.out.println("Count is: " + x);
}

如果我尝试 运行 这表明 x 已经定义。我永远不会以这种方式编写代码,因为它会很混乱;我只是好奇 x 被定义为什么。

int[] table = new int[10],x;

是有效语法,因为 x 只是另一个 int[] 数组变量。

就像你在一行中声明一个单一类型的多个变量:

int a=1,b,c,d,e,f;

If I try running this it says that x is already defined

因为您正试图在同一范围内的 for 循环中第二次声明 x。在您的代码中,我认为没有必要将 x 定义为数组类型,并且您始终可以像您所做的那样在循环内将 x 定义为 int。

它被定义为基于第一个语句的 int[]。 C 系列语言(C、C++、Java、C#、D、...)允许使用 , 分隔相同类型的声明。对于一组具有不同类型的新声明,以 ; 终止语句并编写一个新声明(这基本上是您在 for 循环中已经拥有的)。

当然你会得到一个语法 error.You 已经在 beginning.So 中将 x 定义为一个 int 数组你不能在 x 中将它重新定义为一个 int 变量的范围。