预增量和后增量

Hoo*_*oon 2 c++ operators pre-increment post-increment

我无法理解Post Increment(++),Pre Increment(--)和加/减在一个例子中是如何协同工作的.

x++ 意味着将1添加到变量中.

x-- 意味着从变量中减去1.

但我对这个例子感到困惑:

int x = 2, y = 3, z = 1;`

y++ + z-- + x++;
Run Code Online (Sandbox Code Playgroud)

我认为这意味着3(+1) + 1(-1) + 2(+1)这意味着结果应该是7.

但是当我编译它时,我得到了6.我不明白.

int main() {
  int x=2, y=3, z=1;
  int result;

  result = y++ + z-- + x++;    //this returns 6

  cout << result << endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 10

因为后缀operator++在递增变量之前返回原始值.前缀operator++增加varialbe并返回对它的引用.可以通过示例轻松说明该行为:

#include <iostream>

int main()
{
  int n = 1;
  std::cout << n++ << "\n"; // prints 1
  std::cout << n << "\n";   // prints 2

  int m = 10;
  std::cout << "\n";
  std::cout << ++m << "\n"; // prints 11 
  std::cout << m << "\n";   // prints 11
}
Run Code Online (Sandbox Code Playgroud)


Nul*_*teя 6

 result = y++ + z-- + x++;
           3     1      2  = 6
Run Code Online (Sandbox Code Playgroud)

如果再次执行此操作

 result1 = y++ + z-- + x++;
          4     0      3  = 7
Run Code Online (Sandbox Code Playgroud)

原因

operator++ 在递增变量之前返回原始值.

++operator 返回递增的值

-- 与上面相同只是它的减量


non*_*one 5

当你写x++它时使用当前值,x然后将其增加1.

++x如果你想先增加,你想写.