日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中的i++和++i

發布時間:2025/3/17 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中的i++和++i 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

剛剛學習C#的時候,難免會遇到一些麻煩,而我覺得最有意思的是i++和++i。先介紹下它們吧!!

i++ 俗稱后加加:在處理運算的時候先不做運算,等輸出的時候再加,這是我個人的理解。++i 俗稱先加加

:在處理運算的時候先加。

然后做相應的運算下面來看幾個例子:

?

(1)

?

int i = 1; i++; Console.WriteLine(i);

?

?

?

?

?

最后結果:2

?

(2)

?

int i = 1; ++i; Console.WriteLine(i);


結果:2

?

結論:從(1)(2)看出不管是i++還是++i輸出最后的結果都是經過計算的。

(3)

?

int i = 1,j = 2,sum; sum = j + i++; Console.WriteLine(i); Console.WriteLine(sum);

?

?

?

?

?

結果:2 3

(4)

?

int i = 1,j = 2,sum; sum = j + ++i; Console.WriteLine(i); Console.WriteLine(sum);

結果:24
結論:i++在運算的時候先不做計算,等運算結束后在做加計算。++i在運算的時候就已經做了加計算。

?

?

是不是瞬間明白了,接下來是最經典的部分了:(i++)+(i++)、(i++)+(++i)、(++i)+(++i)

(5)

?

int i = 1, j = 1; j = (i++) + (i++); Console.WriteLine(i); Console.WriteLine(j);

結果:33

?

(6)

?

int i = 1, j = 1; j = (i++) + (++i); Console.WriteLine(i); Console.WriteLine(j);

結果:34

?

(7)

?

int i = 1, j = 1; j = (++i) + (++i); Console.WriteLine(i); Console.WriteLine(j);

結果:35

?

結論:上面這三個例子更明顯的看出,加加在前和加加在后的區別!(PS:當然有新手看不明白,

沒關系。首先是兩個括號,括號的運算級別比加號高,所以先算括號里面的。加號運算符的執

行順序是從左到右。所以執行順序是:( 1 )+( 2 ),+號是最后運算的。拿第一個舉例吧,

j=(i++)+(i++) ,第一個(i++)加加在后,先不做運算,所以i=1,結束第一個后,到了第二個(i++)

的時候i已經做出了計算i=2(ps:因為上一個的i++不做計算,執行完了那個運算再做計算),

第二個(i++),此時的i同樣不做計算,i=2,然后計算加法j=1+2,此時的i=3,輸出結果:i=3,j=3)。

執行效率:

i++在執行的時候會在內存中復制一個副本執行+,實際i的值在執行的時候是沒有執行+的,等到該語句執行完,再把這個++執行結果賦值給這個i,然后在內存中回收這個副本。

++i是直接執行這個++,不會有內存復制的開銷

測試:

static void Main(string[] args) {Stopwatch sw1 = new Stopwatch();sw1.Start();int i1 = 0;while (i1 < 1000000000){i1++;}sw1.Stop();TimeSpan ts1 = sw1.Elapsed;Console.WriteLine("i++總共花費" + ts1.TotalMilliseconds + "ms.");Stopwatch sw2 = new Stopwatch();sw2.Start();int i2 = 0;while (i2 < 1000000000){++i2;}sw2.Stop();TimeSpan ts2 = sw2.Elapsed;Console.WriteLine("++i總共花費" + ts2.TotalMilliseconds + "ms.");Console.Read(); } i++總共花費2677.6881ms. ++i總共花費2520.9784ms.

總結:我相信看完這么寫經典的例子后,入坑的同學已經有了一定的理解。在實際情況中,

不同的編譯器不同的語言中,后面三個例子的最后結果是不相同的,所以,在實際開發

中避免這種現象出現!

注:i--和--i原理一樣


?

總結

以上是生活随笔為你收集整理的C#中的i++和++i的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。