数组初始化器可用于在编译时初始化数组。如下所示的带有尾随逗号的初始化器可以很好地编译。
int a[][] = {{1,2,} ,{3,4,} , {5,6,},}; //Trailing commas cause no compiler error
for(int i=0;i<a.length;i++)
{
for(int j=0;j<2;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
输出:
1 2
3 4
5 6
使用一维数组也是合法的,正如上面讨论的那样。
int[] b = {1, 2, 3, 4, 5, 6,}; //A trailing comma causes no compiler error
for(int i=0;i<b.length;i++)
{
System.out.print(b[i]+"\t");
}
输出:
1 2 3 4 5 6
甚至下面的代码也是合法的语法,并且编译得很好。
int c[][] = {{,} ,{,} , {,},};
编译器应该在逗号,
之后和之前期望一个常量值(或另一个初始值设定项)。这是如何编译的?在这种情况下,编译器会简单地忽略这些逗号或发生其他事情吗?
发布于 2012-07-24 07:19:16
将忽略尾随的逗号。从Java specification
在数组初始值设定项中,尾随逗号可能出现在最后一个表达式之后,并被忽略。
https://stackoverflow.com/questions/11621917
复制相似问题