c++中的加号运算符

plus operator in c++

我读到加号运算符将其右值添加到其左值。例如,如果我们写 x + 1;,加号运算符会在内存中找到变量 x 并向其添加 1

但是这个运算符不是那样工作的,因为在下面的代码中,它没有将 1 添加到它的左值 (x)。

int x = 4;
x + 1;// now the + operator adds 1 to x variable.
std::cout << x << std::endl;// this line must print 5 but doesn't.

如果它不像我解释的那样起作用,那么它是如何起作用的?

你需要写

x = x + 1;

x++;

the plus operator add it's Rvalues to it's Lvalues

这是正确的。它会这样做,但会将临时结果存储在内存中,并 returns 结果供您使用。此结果需要由您显式保存到您管理的某个变量中。

例如,如果你想改变x,你可以做x=x+1,否则你可以使用一个新的变量,例如int result = x+1

Here 有详尽的解释。引用:

All arithmetic operators compute the result of specific arithmetic operation and returns its result. The arguments are not modified.

您正在将 x 的值加 1,但没有将其赋值回 x。

使用 x=x+1 这会起作用。