[問題] 整數陣列 賦值

看板C_and_CPP (C/C++)作者 (宸火)時間7年前 (2018/08/18 17:57), 7年前編輯推噓5(505)
留言10則, 7人參與, 7年前最新討論串1/1
在一本書看到 可以這樣給初始值 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 請問該怎麼理解這結果 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.177.161 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1534586267.A.9E6.html ※ 編輯: x246libra (118.168.177.161), 08/18/2018 17:58:08

08/18 18:01, 7年前 , 1F
你不覺得第一個好像少了點什麼嗎
08/18 18:01, 1F
少了什麼? 我應該完全照書上打 沒發現少了什麼

08/18 18:07, 7年前 , 2F
第二個只有陣列前三個被賦值而已
08/18 18:07, 2F

08/18 18:08, 7年前 , 3F
(0, 1), (2, 3), (4, 5) 分別回傳 1, 3, 5
08/18 18:08, 3F
為什麼加了小括號 只會回傳 最後一個數字? 小括號有這種特性嗎... ※ 編輯: x246libra (118.168.177.161), 08/18/2018 18:10:44

08/18 18:15, 7年前 , 4F
你的右大括弧呢?
08/18 18:15, 4F
乾 真的少一個 大括號 為什麼我看不到 ... 那小括號 那奇怪的行為 有人可以告訴我 為什麼嗎? 雖然是錯誤用法 ※ 編輯: x246libra (118.168.177.161), 08/18/2018 18:18:29

08/18 18:47, 7年前 , 5F
其實小括號表示依序做逗點分開的幾件事 最後回傳最後一
08/18 18:47, 5F

08/18 18:47, 7年前 , 6F
件事的結果 例如int i=5,j=10;cout<<(i++,j);會顯示10
08/18 18:47, 6F

08/18 18:47, 7年前 , 7F
然後i會變6
08/18 18:47, 7F

08/18 21:14, 7年前 , 8F
comma operator
08/18 21:14, 8F
查詢了 comma operator 居然有這種用法 以前沒用過 不知道可以應用在什麼地方 ※ 編輯: x246libra (118.168.177.161), 08/19/2018 09:16:58

08/19 12:24, 7年前 , 9F
個人常會寫到while(cin>>n, n!=0)之類的
08/19 12:24, 9F

08/19 14:03, 7年前 , 10F
感謝樓主寫錯讓我學到這個用法XD
08/19 14:03, 10F
文章代碼(AID): #1RT-sRdc (C_and_CPP)
文章代碼(AID): #1RT-sRdc (C_and_CPP)