#include <stdio.h>
int main() {
int a
[3][2] = { (0, 1), (2, 3), (4, 5) };
printf("%d\n",a
[0][0]);
printf("%d\n",a
[0][1]);
printf("%d\n",a
[1][0]);
return 0;
}
运行结果如下: 为什么会是 1 3 5? 因为这算是逗号运算符:优先级别最低,将两个以上的式子联接起来,从左到右逐个计算表达式,整个表达式的值为最后一个表达式的值。例如:(3+5, 6+8) 称为逗号表达式,求解过程先计算表达式1,再计算表达式 2,整个表达式的值是第二个表达式的值,即 14。
所以在上边的代码中 int a[3][2] = { (0, 1), (2, 3), (4, 5) } , 实际上就是:int a[3][2] = { 1, 3, 5 },就只给 a[0][0], a[0][1], a[1][0],进行了初始化。