[問題] 整數陣列 賦值

作者: 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