C的基本增量

时间:2013-06-21 10:47:42

标签: c

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

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

我希望答案是6,但答案是7。这怎么可能?C中的增量

1 个答案:

答案 0 :(得分:4)

多次为两个序列点之间的单个内存位置分配会产生未定义的行为,不会出现特定的值或行为。

经验法则:不要多次为单个表达式中的单个值分配:

++i; ++i; i+= i; // okay
++i + ++i;       // not okay