簡體   English   中英

C#后增量和前增量

[英]C# post increment and pre increment

我有時會對速記增量操作感到困惑。

因為當我在BASIC中進行小編程時,我得到了一些如何堅持使用a = a + 1,這是一種長期痛苦的方式,即“獲取當前值,為其添加1,然后將新值存儲回'。

1] a = a +1 ; 

2] a++ ;

3] ++a;

4] a +=1;

[1]和[4]在功能上有不同的表示法,對嗎?

由於增量符號++之前和之后的事實,2]和3]的工作方式完全不同。 對?

我可以安全地假設下面的內容嗎?

int f(int x){ return x * x;}

y = f(x++) -> for x =2, f(x) = x^2

f(x)     ======> y= 2^2 =4 

x=x+1;   ======> x= 2+1 = 3 



y = f(++x) -> for x =2, f(x) = x^2

x=x+1    ===========> x = 2+1 = 3

f(x)     ===========> y =3^2 = 9

區別在於運營商返回的內容:

post -increment運算符“a plus plus”添加一個,並返回值:

int a = 1;
int b = a++;
// now a is 2, b is 1

pre -increment運算符“plus plus a”添加一個,並返回值:

    a = 1;
    b = ++a;
// now a is 2 and b is 2

首先,你應該仔細閱讀這個答案:

i ++和++ i有什么區別?

仔細閱讀此博客文章:

http://blogs.msdn.com/b/ericlippert/archive/2011/03/29/compound-assignment-part-one.aspx

請注意,該帖子的第二部分是愚人節的笑話,所以不要相信它說的任何內容。 第一部分是嚴肅的。

那些應該回答你的問題。

當你只有一個普通的局部變量時,語句為x++; ++x; x = x + 1; x += 1; x++; ++x; x = x + 1; x += 1; 基本上都是一樣的東西。 但是一旦你偏離了普通的局部變量,事情變得更加復雜。 這些行動對他們來說是微妙的。

1],3]和4]在功能上是相同的 - a增加1,整個表達式的值是a值。

2]與其他人不同。 它也會增加a ,但表達式的值是a前一個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM