我在下面有这段代码。描述总和为0
是否正确,因为sum++
将被忽略,因为sum +=
的赋值将在增加值之前加0?或者如何最好地描述?我的意思是如果我使用sum += sum + 1
,结果会有所不同。
int sum = 0;
for (int i = 0; i < 10; i++)
{
sum += sum++;
}
// Sum has end value 0
答案 0 :(得分:1)
sum++
会增加该值,但会在增加之前返回之前的值。 ++sum
也会增加该值,但在递增后返回值。
您可以将sum++
视为返回值,然后提高价值(即使这不是发生的事情)
并且您认为++sum
增加了值然后返回它。
因此,sum += ++sum
与sum += sum + 1
相同,只要最终结果如此。
在您的示例中,sum++
返回零,sum
设置为两个1
,但之后您将其设置回0
并重复。