Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个非常基本的疑问,我在 C 中尝试了以下代码。
i=(++i)+(++i)+(++i);
我预计答案是 6,但结果是 7。这怎么可能?C 中的增量
多次分配给两个序列点之间的单个内存位置会产生未定义的行为,没有特定的值或行为是预期的。
经验法则:不要对单个表达式中的单个值多次赋值:
++i; ++i; i+= i; // okay ++i + ++i; // not okay