話題10 千差萬別 i 與 i的區別

2021-07-07 09:49:40 字數 797 閱讀 1334

在使用的時候,大家都了解的是++i是先加再用,而i++是先用再加。但是二者其實有很大區別的。

如下**:

/**

* */

package chapter2;

/** * @author vayne

* */

public class proandpost

/*** @param i

*/private static void function3(int i)

/*** @param i

*/private static void function2(int i)

/*** @param i

*/private static void function1(int i)

}

執行結果如下:

i=++i的結果是:16

j=i++的結果是:15

i=i++的結果是:15

對於後置++,即i++,其實其實際應用過程是:

int temp=i;

i+=1;

f(temp);

其中f指的是對temp的實際應用。因此,在i++使用的過程中,引入了第三個變數temp,因此,對於i=i++,是將temp的值賦給了i,所以i=i++的結果,i為15。

而對於前置++,即++i,直接將i+=1,然後直接應用i。

從偽指令角度來說,前置++是將變數+1後應用,而後置++是先將變數的值壓入棧中,然後將變數+1,最後應用的是棧中的值。

差之 10px ,謬以千里

在解決了解析度對bosnma的影響後,最近在研究火狐 chrome等瀏覽器顯示異常的問題。於是開始愜意的google。其實解決瀏覽器之間的相容性問題是web開發公認的棘手問題之一,尤其是在比較大型和正規的企業,他們的 要盡可能的滿足更多的執行環境以爭取最大的客戶流量。在解析度上,客戶的設定除了主流的...

C 高效程式設計話題集1(每期10話題)

近來在小組 c 快速成長團隊 討論了若干話題,有些感覺不錯,特總結與大家分享。當然,所謂話題,重點在於進行討論,是否是最佳實踐也屬於大家的個人之見。以下觀點若有差錯,盡情蹂躪。1 string str1 str1 9 和string str2 str2 9.tostring 哪個效率高 可以知道 s...

C 高效程式設計話題集1(每期10話題)

近來在小組 c 快速成長團隊 討論了若干話題,有些感覺不錯,特總結與大家分享。當然,所謂話題,重點在於進行討論,是否是最佳實踐也屬於大家的個人之見。以下觀點若有差錯,盡情蹂躪。1 string str1 str1 9 和string str2 str2 9.tostring 哪個效率高 可以知道 s...