如comp.lang.c FAQ中所述,C标准规定:
在前一个和下一个序列点之间,对象的存储值最多只能通过表达式的计算来修改一次.此外,只能访问先前值以确定要存储的值.
但是,这篇(现已删除的)文章说这a = ++b + ++c;是未定义的.有人可以解释为什么这是未定义的行为?
P.P*_*.P. 11
如果表达式中涉及的对象(a,b和c)a = ++b + ++c;是不同的,那么该表达式是明确定义的.
也许,作者意味着两次使用相同的变量,如a = ++b + ++b;.我只能推测.但是在给定的表达式中没有任何不确定性.