驗證 i和i 的區別

2021-08-03 08:39:30 字數 1292 閱讀 3209

平時我們對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...