当我初始化一个新数组时,我注意到如果我放了,x
它仍然编译。我不确定这里发生了什么。
int[] table = new int[10],x;
for(int x=1; x<11; x++){
System.out.println("Count is: " + x);
}
如果我尝试运行它,则说已经定义了x。我绝不会以这种方式编写代码,因为它会让人很困惑;我只是好奇x被定义为什么。
答案 0 :(得分:5)
int[] table = new int[10],x;
是有效的语法,因为x只是另一个int []数组变量。
就像在一行中声明单个类型的多个变量一样:
int a=1,b,c,d,e,f;
如果我尝试运行它,则表示x已经定义
因为你试图在同一范围内的for循环中第二次声明x。在你的代码中,我没有看到任何将x定义为数组类型的需要,你总是可以像你一样在循环中将x定义为int。
答案 1 :(得分:1)
根据第一个语句定义为int[]
。 C系列语言(C,C ++,Java,C#,D,...)允许使用,
分隔相同类型的声明。对于具有不同类型的新声明集,请使用;
终止该声明并编写一个新声明(这基本上就是您在for
循环中已经拥有的声明)。
答案 2 :(得分:0)
原因你会得到一个语法错误。你已经在开始时将x
定义为一个int数组。所以你不能将它重新定义为x
范围内的int变量。