我们可以像这样初始化一个数组:
int myArray[][] = { {10,20} ,{30,40} , {50} };
Run Code Online (Sandbox Code Playgroud)
它工作正常.
但我遇到了一个特殊的情况.
int myAnotherArray[][] = { {,} ,{,} , {,} };
Run Code Online (Sandbox Code Playgroud)
上面的代码行编译得很好.根据我的说法很奇怪.因为当编译器会分析该语句时,它会遇到{与,和}在一起.编译器不应期望中间的常量或字面值吗?如果有人告诉我如何解析上面的语句以及编译器在遇到这种情况时究竟做了什么,我将不胜感激.
aio*_*obe 24
这只是一个事实的怪癖,语法允许尾随逗号.
例如,允许尾随逗号对于生成诸如此类事物的代码生成器是友好的,{ 0, 1, }并允许您方便地注释掉最后一行.
int[] myArray = {
0,
// 1
};
Run Code Online (Sandbox Code Playgroud)
(正如您可能已经想到的那样,尾随,被忽略,即{ , }产生一个空数组.)
相关问题:
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |