[问题] 整数阵列 赋值

楼主: x246libra (楓)   2018-08-18 17:57:44
在一本书看到 可以这样给初始值
int a1[3][2]={{0,1},{2,3},{4,5};
结果我的complier 报错 不给编译
于是 我换成小括号
int a1[3][2]={(0,1),(2,3),(4,5)};
complier通过了
但是输出结果 感到疑惑
int a1[3][2]={(0,1),(2,3),(4,5)};
int i,j;
for (i=0;i<3;i++)
for (j=0;j<2;j++)
printf("%d\n",a1[i][j]);
输出结果 1 3 5 0 0 0
请问该怎么理解这结果
作者: sarafciel (Cattuz)   2018-08-18 18:01:00
你不觉得第一个好像少了点什么吗
作者: as7218 (Kaigiks)   2018-08-18 18:07:00
第二个只有阵列前三个被赋值而已(0, 1), (2, 3), (4, 5) 分别回传 1, 3, 5
作者: garyl62327 (garyl62327)   2018-08-18 18:15:00
你的右大括号呢?
作者: jerryh001   2018-08-18 18:47:00
其实小括号表示依序做逗点分开的几件事 最后回传最后一件事的结果 例如int i=5,j=10;cout<<(i++,j);会显示10然后i会变6
作者: idiont (supertroller)   2018-08-18 21:14:00
comma operator
作者: oToToT (屁孩)   2018-08-19 12:24:00
个人常会写到while(cin>>n, n!=0)之类的
作者: cphe (魔鬼藏在垃圾筒里)   2018-08-19 14:03:00
感谢楼主写错让我学到这个用法XD

Links booklink

Contact Us: admin [ a t ] ucptt.com