i 和i 的用法

2021-05-28 06:25:15 字數 708 閱讀 1185

式1的運算過程:

第一步,第乙個++i計算後i=1,++i計算的結果為1

第二步,然後就是i++的計算後i的值不變仍為1,i++的計算結果為1;

第三步,接著計算前一步驟中i++自增後的值,此時i=2,再就是第二i++的計算,i的值不變仍是2,所以這一步中i++的計算結果為2;

第四步,同上一步計算前一步驟中i++自增後的值,此時i=3,所以這一步中i++的結果是3

第五步,最終結果是1+1+2+3=7;

式2的運算過程:

第一步,j++計算後的結果為0 ;j進行自增運算後j=1;(先將j的值存入堆疊,然後對變數區中的j自加1,此時變數區中j=1)

第二步,第二個j++的運算結果為1,但是j = 2;(將變數區的j的值存入堆疊,然後對變數區中的j自加1,此時變數區中的j=2)

第三步,第三個j++的運算結果為2,但j = 3;(將變數區的j的值存入堆疊,然後對變數區中的j自加1,此時變數區中的j=3)

第四步:++j運算結果為4,j=4;(對變數區中的j自加1,然後再將變數區中j的值存入堆疊,此時變數區中的j=4)

第五步,最終結果是0+1+2+4=7;

式的運算過程是按照變數區的值和堆疊中的值的變化來寫,總結起來i++就是先將變數區中的值存入堆疊中,再對變數區進行自加1,

而++i則是先變數區的值進行自加1操作後,再將變數區中的值放入堆疊中。堆疊中儲存的是臨時值,在表示式中用到的值都是變數區中的值。

i和i 的區別

大家都應該知道i 和 i的區別,前者是先使用i的值,然後再增加1,而後者是先增加1然後再使用i的值。但是i 和 i那個更好呢?我們實現角度來看 前者是將i值加1後賦給i,然後返回i本身 而後者是先用個臨時變數儲存i值,然後將i值加1賦給i,然後返回臨時變數的值。內建資料型別他們的效率差不多,看他們的...

i 和 i 的輸出

include include include int main int argc,const char argv 輸出結果為 3 3 3 1 0 0 在vs中 printf輸出時,從輸出表示式右到左計算,然後從右到左入棧,再出棧 vs中的彙編下的 5 int main int argc,const...

i 和 i的區別

當年上c 課的時候對於i 和 i的區別就稀里糊塗。後來沒注意也沒出過什麼問題。但是這個問題還是應該搞清楚。假如有乙個vector,值為 1,2,3,4,5,6,7 用以下程式輸出 i 0 while i 7 i 0 while i 7 cout beforei v i endl cout befor...