【问题标题】:Difference between -= and =- in C++ and C? [duplicate]C ++和C中-=和=-之间的区别? [复制]
【发布时间】:2022-01-13 11:08:54
【问题描述】:

我经常混淆“-=”和“=-”,比如它们之间的确切区别是什么?

int main()
{
    int x=10, a=-3;
    x=-a;
    printf("%d",x);

    return 0;
}

输出

3

【问题讨论】:

  • @pmg 我没有得到令牌部分?你能澄清一下吗?
  • 在编译过程中,较早的任务之一是将源文件的文本分割成tokens。然后进一步使用令牌来创建目标文件。例如---转化为---两个token; -++ 转化为-++ 两个令牌

标签: c++ c


【解决方案1】:

-= 是一个复合赋值运算符。 =- 是两个单独应用的运算符。

虽然

a =- 3;

一样
a = (-3);

这个

x -= a;

或多或少等同于

x = x - a;

“或多或少”,因为运算符可以重载(在 C++ 中)并且通常复合运算符会避免使用临时右侧。

顺便说一句,您在代码中使用了两次=-,而问题要求+==++= 也是一个复合运算符。

【讨论】:

  • 感谢您的澄清
猜你喜欢
  • 2021-12-28
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
相关资源
最近更新 更多