C中递增/递减算子的必要性

Dee*_*epu 6 c c++

我怀疑Increment/Decrement运算符(++--)在C(也在)中的用法C++.它是绝对必要的使用++,并--在节目?例如,考虑下面给出的代码,

int x=10;
x++; 
Run Code Online (Sandbox Code Playgroud)

这可以很容易地替换如下,

int x=10;
x=x+1;
Run Code Online (Sandbox Code Playgroud)

因此,它是需要使用++--在实际编程?我是出于特殊原因问这个问题.在我看来,他们是在最混乱的运营商之一C,形成了类似表述*x++,++*x,x++ + ++x等,每天造成几千人的错误.

当然,我知道可以++在大会指令之间进行直接映射INCR.但我相信,任何像样的编译器优化可以取代一些能力x=x+1INCR x.

所以简而言之,我的问题是" 是否存在x = x + 1无法取代x ++的情况? ".

如果有人可以提供一段在没有++或没有的情况下无法工作的代码,这可能会非常有用--.

有什么建议?谢谢.

小智 11

有什么情况x = x + 1不能替换x++

当然,foo(x = x + 1)不同于foo(x++)因为x = x + 1产生新的价值xx++产生旧的价值x.


除此之外,还有没有太大的区别,并严格++--不需要的(即你可以编写所有的程序x += 1,而不是++xx -= 1代替--x).

请注意,在C++ operator++operator--可以被重载并且特别有用的操纵迭代时.

  • @eq-真的.我们做了一个糟糕的工作,说服OP,他和 - 并不像他声称的那样容易出错;-) (4认同)