标签: c
我有一个非常基本的疑问,我在C中尝试了以下代码。
i=(++i)+(++i)+(++i);
我希望答案是6,但答案是7。这怎么可能?C中的增量
答案 0 :(得分:4)
多次为两个序列点之间的单个内存位置分配会产生未定义的行为,不会出现特定的值或行为。
经验法则:不要多次为单个表达式中的单个值分配:
++i; ++i; i+= i; // okay ++i + ++i; // not okay