故事背景,一個正在c語言的家夥,問我++i 和 i++的問題,我當時由于要去上課沒給他說,正好今晚有空就測試了一下例如以下代碼:
編譯環境:vs2010 語言:c++
一、我們站在彙編的角度來說明一下問題:
可能你沒學過彙編,隻是沒關系,我們先來科普一下彙編基本知識。(我自己也不會彙編,僅僅是能看懂一些簡單彙編代碼)
-----------------------------------------------------------------
好了,以下的彙編代碼我再簡單解釋一下,就基本差點兒相同了。
說明:下面彙編代碼解釋過程中,比方:eax=1,是表示眼下eax中的值為1.
從上面的一段彙編代碼中我們能夠非常清晰的看到,彙編後:
1)c = a++; 當中c的值是1,可是a中的值卻已經變化為2了。
2)c = ++b; 當中c的值是2,b的值也是2。
二、以下用c++中的 ++i 與 i++ 的重載示範樣例來說明一下問題:
---