提起后綴式的 i++,我最常聽的一句總結(jié)就是
后綴模式:先返回,后自增。
但是對于這句話,反映出的意思卻并不明朗。
這幾天翻閱博客看到一個比較清楚的回答,可以解答心中的疑惑
i=i++的問題分析
博客中的一段話總結(jié)的相當(dāng)精彩
int i=1;
System.out.println("i的值為:"+i);
i = i++;是先將i的值(1)存入堆棧,然后對變量區(qū)中的i自加1,這時i的值的確是2,但是隨后又將堆棧的值(1)彈出賦給變量區(qū)的i,所以最后i =1。
通過上面的說明可以得出,實(shí)際上可以認(rèn)為是先自增(i自增然后賦值給i),然后再返回(將堆棧的值彈出賦給變量區(qū),這里屬于第二次給i賦值,將原來i的值(2)給覆蓋掉了)。
由上述的總結(jié)可以得出這樣一個代碼思路(僅幫助理解)
int temp = i;//保存返回值
i = i+1;//自增,i被賦值
i = temp;//最后將返回值賦值給i,覆蓋原來的值
相應(yīng)的 i= ++i可以是這樣的思路(僅幫助理解)
i = i+1;//自增,i被賦值
int temp =i;//保存返回值
i = temp;//最后將返回值賦值給i,覆蓋原來的值
第一次寫東西,希望大家多擔(dān)待,歡迎各路大神來指錯