多维数组初始化用到小括号

it2023-01-10  52

#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],进行了初始化。

最新回复(0)