(c++)更长的算术运算符字符串

(C++) Longer Strings of Arithmetic Operators

本文关键字:运算符 字符串 c++      更新时间:2023-10-16

所以我很清楚简化规则是为了简单性、空间等而桥接代码的。但是随着算术运算符字符串的增加,我们如何实现组合赋值运算符呢?

示例:将y*5加入x,存储在x

可以写成x = x + (y*5),压缩成x += (y*5)

我的问题是,你能更进一步,把它重写为x += y*5吗?

或者类似于a -= b + 2的东西等于a -= (b+2)

我正在计划一些空白的问题,在我继续之前,我想确认操作顺序是如何在c++中更详细地翻译的。由于

是的,你可以去掉所有的括号。

请看:http://en.cppreference.com/w/cpp/language/operator_precedence

您是否尝试运行代码?

#include <iostream>
int main()
{
  int x = 10;
  int y = 2;
  x += y * 2;
  std::cout << x << std::endl;
  return 0;
}

明确给出了14

#include <iostream>
int main()
{
  int x = 10;
  int y = 2;
  x += y * 2;
  int x1 = 10;
  x1 += (y * 2);
  std::cout << (x == x1) << std::endl;
  return 0;
}

生成1,因此您可以重写。