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
这会起作用。
我读到加号运算符将其右值添加到其左值。例如,如果我们写 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
这会起作用。