如comp.lang.c FAQ中所述,C标准规定:
在前一个和下一个序列点之间,一个对象应该具有它 通过表达式的评估,最多修改一次存储值。 此外,只能访问先前值以确定 值存储。
但是,(now deleted) article表示a = ++b + ++c;
未定义。有人可以解释为什么这是未定义的行为?
答案 0 :(得分:11)
如果表达式a
中涉及的对象(b
,c
和a = ++b + ++c;
)不同,则表达式已明确定义。
也许,作者意味着两次使用相同的变量,例如a = ++b + ++b;
。我只能推测。但是在给定的表达中没有任何不确定性。