增加C#中的算术魔术

时间:2014-01-02 09:52:24

标签: c# increment post-increment pre-increment

为什么此代码的输出值为100.请帮助我理解这种行为。

static void Main(string[] args)  
{  
    int i = 100;  
    for (int n = 0; n < 100; n++)  
    {  
         i = i++;  
    }  
    Console.WriteLine(i);  // This gives the Value 100 why?
}  

我在C和C#编译器中运行了相同的代码。 在C编译器中给出值200 在C#编译器中给出值100。

为什么同一段代码在两个编译器中的行为如此?

2 个答案:

答案 0 :(得分:2)

这与

相同
static void Main(string[] args)  
{  
    int i = 100;  
    for (int n = 0; n < 100; n++)  
    {  
       int x = i;
       i++;
       i = x;  
    }  
    Console.WriteLine(i);  // This gives the Value 100 why?
}  

您在循环中一直重新分配100

答案 1 :(得分:0)

因为它是后增量。首先分配100然后递增。

i = i ++;

因此输出。