【发布时间】:2018-05-18 14:07:11
【问题描述】:
我在下面有这个代码sn-p。描述总和将是0 是否正确,因为sum++ 将被忽略,因为sum += 的分配将在增加值之前添加0?或者这是如何最好地描述的?我的意思是,如果我使用sum += sum + 1,结果会有所不同。
int sum = 0;
for (int i = 0; i < 10; i++)
{
sum += sum++;
}
// Sum has end value 0
【问题讨论】:
-
那么这里的问题是什么?你回答并证明了你自己的问题......
-
操作顺序。如果你切换到 sum += ++sum 会发生什么
-
我认为问题是如何;总和+=总和++;不同于 sum += sum + 1;
-
我认为你是对的,是的。本质上,它将
sum加载到内存位置 1 中。然后它再次将 sum 加载到内存位置 2。然后将内存位置 2 加 1 并将结果存储到sum(不更新内存位置 2)。然后,它将内存位置 1 和 2(仍为 0)相加,并将其结果分配给 sum,因此 sum 再次为 0。 -
sum += ++sum;怎么样
标签: c#