隨筆記-for迴圈中++i和i++
阿新 • • 發佈:2022-04-15
剛開始刷力扣的時候注意到一個不太一樣的點。
以前寫for迴圈都是for(xxx;xxx;i++)
一路這麼寫過來,教材上面、老師講課也一路是這麼過來的。
但不太一樣的是:發現力扣上的for迴圈都是這麼寫的for(xxx;xxx;++i)
,第三個語句都是++i而不是i++,而且並不只有for下、迴圈,題解中涉及自增自減幾乎都是這樣。
當然,學過C++當然知道單說這兩種寫法的區別:
i++是用完再加;++i是加完再用
也就是說int i=1;cout<<i++;
輸出是1,而cout<<++i;
輸出則是2
但是我並不理解在for迴圈中這兩種寫法有什麼區別,就迴圈結果而言,我認為是沒有區別的,就一直有些不解。
今天去搜了一下,看到一篇博文上這個解釋:
i++由於是在使用當前值之後再+1,所以需要一個臨時變數來轉存
而++i則是直接+1,省去了對記憶體的操作環節,相對而言能夠提高效能
看起來像是那麼回事,“更好的效能”看起來合情合理,只是有待查證,對於這個解釋我也不是完全理解,mark一下先