Visual Basic和C# 只是学习基础知识和这些非常简单的几行输出让我很困惑。
int x = 10;
int y = x++;
Console.WriteLine(x);
Console.WriteLine(y);
输出是11然后是10.我期待10,然后是11.我在这里缺少什么?
答案 0 :(得分:2)
x++
在使用后递增x
(在您的示例中将其当前值分配给y
后)。另一方面,++x
在使用之前递增x
。所以
int x = 10;
int y = ++x; // Note that the plus signs stand before x, not after!
Console.WriteLine(x);
Console.WriteLine(y);
会导致
11
11
如果您想将x+1
(11
)分配给y
并将x
保留在10
处
int x = 10;
int y = x + 1;
Console.WriteLine(x);
Console.WriteLine(y);
10
11
答案 1 :(得分:0)
y = x++
将先分配然后再增加。 y = ++x
将首先递增,然后分配。在您的示例中,您首先为y
分配值x
,然后将x
增加到11
。
由于int
是value type(与参考类型相比),更改x
的值不会影响分配给y
的值。
int x = 10;
int y = x++; // Assigns the value of x to y (i.e. 10), THEN incrementing x to 11.
Console.WriteLine(x); // Writes the current value of x (i.e. 11).
Console.WriteLine(y); // Writes the current value of y (i.e. 10).