-3

为什么此代码的输出给出值 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。

为什么同一段代码在两个编译器中的行为是这样的?

4

2 回答 2

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

于 2014-01-02T09:56:53.533 回答
0

因为是后期增量。将分配前 100 个,然后递增。

我=我++;

因此输出。

于 2014-01-02T09:57:01.277 回答