平時我們對k=++i和k=i++的區別解釋一般記憶:
++i就是i先自身加1再賦值給k;
i++就是先將i賦值給k,i在自身加1;
這樣的解釋最終都是說將i賦值給了k。
這裡通過寫幾個方法來證明,這個說法並不對。當然這樣記憶可能更為方便些。
/**
* 分析++i和i++的區別.
*@author j.kevin
*平時我們對k=++i和k=i++的區別解釋一般記憶:
*++i就是i先自身加1再賦值給k;
*i++就是先將i賦值給k,i在自身加1;
*這樣的解釋最終都是說將i賦值給了k。
*這裡通過幾個方法來證明,這個說法並不對。當然這樣記憶可能更為方便些。
*/public
class
test
public
static
void
test1()
public
static
void
test2()
public
static
void
test3()
public
static
void
test4()
public
static
void
test5()
public
static
void
test6()
}
可以看到,一共寫了6個方法,目的只是為了證明一件事,那就是k=++i和k=i++並不是將i值賦值給了k,而是將++i和i++這個表示式賦值個了k。如何證明?看下我的列印結果:
i結果:
11k=i++
結果:10
k=(+
+i)結果:
11k=(i++
)結果:10(
++i)結果:
11(i++
)結果:
10
為了防止不好理解,這裡特意為++i和i++新增了括號,意在證明結果就是(++i)和(i++)這個表示式的值。相信有很多人已經知道是這樣的,這裡只是記錄下,也方便沒有理解的童鞋學習。◕ᴗ◕。i和i 的區別
大家都應該知道i 和 i的區別,前者是先使用i的值,然後再增加1,而後者是先增加1然後再使用i的值。但是i 和 i那個更好呢?我們實現角度來看 前者是將i值加1後賦給i,然後返回i本身 而後者是先用個臨時變數儲存i值,然後將i值加1賦給i,然後返回臨時變數的值。內建資料型別他們的效率差不多,看他們的...
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...
i 和 i的區別
很多朋友在學習基礎的時候很容易遇到過這個問題,i和i 到底有什麼區別?下面來詳細解釋一下。首先i 和 i單獨為一條語句時沒有任何區別 例如 int i 1 i 單獨為一條語句 system.out.println i i i 2 int i 1 i 單獨為一條語句 system.out.printl...