-1

我有一个非常基本的疑问,我在 C 中尝试了以下代码。

i=(++i)+(++i)+(++i);

我预计答案是 6,但结果是 7。这怎么可能?C 中的增量

4

1 回答 1

4

多次分配给两个序列点之间的单个内存位置会产生未定义的行为,没有特定的值或行为是预期的。

经验法则:不要对单个表达式中的单个值多次赋值:

++i; ++i; i+= i; // okay
++i + ++i;       // not okay
于 2013-06-21T10:53:02.990 回答