【问题标题】:plus operator in c++C++ 中的加号运算符
【发布时间】:2020-07-16 09:16:16
【问题描述】:

我读过加号运算符将其右值添加到其左值中。例如,如果我们写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 + 1) 的值分配给 x。
  • x + 1;// now the + operator add 1 to x value not x variable
  • 请注意,大多数看起来像 C++ 的语言都使用x = x + 1 或类似语言来工作。不确定您过去使用的哪种计算机语言通过说出x + 1 来改变x 的值。最接近的语言可能是 COBOL (ADD 1 TO X),但它看起来不像 C++。
  • 请注意,+= 运算符可以满足您对 + 的期望。

标签: c++ operator-keyword


【解决方案1】:

加号运算符将它的右值添加到它的左值

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

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

Here 有广泛的解释。引用:

所有算术运算符都会计算特定算术的结果 操作并返回其结果。参数未修改。

【讨论】:

    【解决方案2】:

    您将 x 的值加 1,但没有将其分配回 x。

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

    【讨论】:

      【解决方案3】:

      你需要写

      x = x + 1;
      

      x++;
      

      【讨论】:

        猜你喜欢
        • 2019-02-21
        • 2017-10-14
        • 1970-01-01
        • 2017-07-11
        • 2010-12-16
        • 1970-01-01
        • 2011-11-04
        • 1970-01-01
        • 2013-08-04
        相关资源
        最近更新 更多