[問題] for迴圈裏面 ++i的問題?

作者: yongb (火系見習魔法師 )   2018-05-20 07:41:32
開發平台(Platform): (Ex: Win10, Linux, ...)
ubuntu14.04
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc5.4
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
null
問題(Question):
我昨天刷題的時候
有一題我因為某個原因需要
for(int i=0;i<=5;++i)
結果發現
i是從0跑起?
正常來說不是應該要從1跑起嗎?
我的認知是++i這種東西在該行會直接生效
我嘗試了一下不用for,直接printf試試,結果跟我的認知是一樣的
我爬了置底文
for迴圈的先後順訊,莫非是第一輪不會++i?
但這個看法又不合理,如果我用i++,下一輪就會++,表示第一輪就有生效了?
半夜睡覺一直想這件事情都沒睡好,早上趕緊上ptt提問
還是各位大大不吝指教小弟
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://ideone.com/4eZvhh
作者: KanzakiHAria (神崎・H・アリア)   2018-05-20 07:53:00
作者: b0920075 (Void)   2018-05-20 08:39:00
先初始化再判斷條件,然後執行回圈內的事情,最後更新i再說一個statement是以分號為基準吧,跟一行沒關係
作者: stupid0319 (徵女友)   2018-05-20 08:45:00
你把for一行分三行寫,就不會有這個問題了
作者: testPtt (測試)   2018-05-20 08:47:00
單純省空間
作者: ilikekotomi (Young)   2018-05-20 10:49:00
看神崎大大貼的explanation就知道了
作者: djshen (djshen)   2018-05-20 11:45:00
#1MNSjNfA不就用過i++了
作者: forever84721 (Jay)   2018-05-21 00:03:00
改成while寫你可能就懂了for第三個是每次跑完 要做的事最後要i++ ++i不都一樣 +完再去第二的判斷式 成立再繼續
作者: bhbbbbb (影)   2018-05-21 20:04:00
你的for迴圈第一次就是跑i=0第二次1最後一次4,不懂你的問題在哪,一直都是這樣吧

Links booklink

Contact Us: admin [ a t ] ucptt.com