2

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

4

2 回答 2

14

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

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

不,++++i也不允许。

这就是我所拥有的。

于 2013-08-06T19:26:40.453 回答
8

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

于 2013-08-06T19:32:33.467 回答