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)
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 返回递增的值
-- 与上面相同只是它的减量