可能重复:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)
Undefined Behavior and Sequence Points(C ++ FAQ条目)
在C和C ++中,如何解析表达式x+++++y
?作为x++ ++ +y
或x++ + ++y
?
答案 0 :(得分:11)
x+++++y
被解析为x ++ ++ + y
而不是x ++ + ++ y
。根据{{3}}“,tokenizer应该继续从源文件中读取字符,直到再添加一个字符导致当前令牌停止有意义”
x++ ++ +y
不应该编译(在C和C ++中),因为后增量运算符++
需要lvalue
作为参数并返回rvalue
。