Re: [問題] for迴圈 和++i i++的問題

看板C_and_CPP (C/C++)作者 (sjgau)時間16年前 (2009/08/23 09:21), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《Waterpig (waterpig)》之銘言: : ++i 是先將i指派為i+1後再將i+1的值傳出 int i, j; i= 10; j= ++i; // i= 11, j= 11 : i++ 是先傳出i值 再指派i為i+1 int i, j; i= 10; j= i++; // i= 11, j= 10 : 以上我的理解應該沒錯吧? : 我的問題在於for迴圈 : for迴圈的流程是 : ┌──假──→離開迴圈 : │ : 進入迴圈→設定記次變數起始值→測試條件式──真─→程式區段→更新計次變數 : ↑ │ : │ │ : └──────────────┘ : 這時候 for (i=0;i<=3;++i){程式區段} : 和 for (i=0;i<=3;i++){程式區段} : 兩個差別在於哪? int i, j, no; for (i= 0, j= 0;i<= 3;j= i++) {// or j= ++i no= no + i + j; // print i, j, no= ??? } // print no= ??? 這樣,就有差了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.245.110.241

08/23 09:24, , 1F
恩...如果i 和 j有出現在程式理會有差 如果單純計次就
08/23 09:24, 1F

08/23 09:24, , 2F
沒有差別吧?
08/23 09:24, 2F

08/23 10:25, , 3F
應該這樣說:如果是獨立一句語言的話i++;++i;沒有影響
08/23 10:25, 3F

08/23 10:26, , 4F
但如果你有其他的東西跟他連在一起(k=i++;cout<<++i;)
08/23 10:26, 4F

08/23 10:26, , 5F
這時候放前跟放後就會有顯著的不同
08/23 10:26, 5F
文章代碼(AID): #1Aa9cCdY (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Aa9cCdY (C_and_CPP)