我认为前缀 ++ 和后缀 ++ 之间的唯一区别是它们的优先级。显然我错了。也许重要的是返回值?
问问题
424 次
2 回答
14
在 C++ 中,++++i
编译,因为前缀operator++
返回一个左值。但是,仍然不建议使用这种疯狂增量运算符,因为它调用了 UB。
我是一个 C 人,这也被标记为 C,所以值得指出的是,这在 C 中是不同的,在这种情况下,答案是:
不,++++i
也不允许。
这就是我所拥有的。
于 2013-08-06T19:26:40.453 回答
8
实际上两者都是错误的(如前所述),但第一个甚至是不可编译的,因为后缀++
需要一个左值,但前缀是++
临时返回的。第二个,尽管具有可兼容性,但违反了规则:在序列点之间,您只能修改一次变量。显然,您在这里尝试修改i
两次!
于 2013-08-06T19:32:33.467 回答