(修订)前缀++和后缀++有什么区别?

时间:2013-08-06 19:24:58

标签: c++

我认为前缀++和后缀++之间的唯一区别是它们的优先级。显然我错了。也许这是重要的返回价值?

2 个答案:

答案 0 :(得分:14)

在C ++中,++++i编译,因为前缀operator++返回左值。但是,使用这个疯狂增量运算符仍然是不可取的,因为它会调用UB。

我是C人,而 也被标记为C,所以值得指出的是,这在C中是不同的,在这种情况下答案是:

不,也不允许++++i

这就是我所拥有的一切。

答案 1 :(得分:8)

实际上两个错误(如前所述),但是第一个甚至不可编辑,因为后缀++需要左值,但前缀++返回临时值。第二个,尽管具有可通信性,但违反了规则:序列点之间的只能修改一次变量。显然,你在这里试图修改i两次!