c++ - 有人可以解释速记赋值运算符的实际工作原理吗?

标签 c++ assignment-operator shorthand

#include <iostream>
using namespace std;
int main()
{   
    int x=2,a=3,b=2;
    x*=a/b;
    cout<<x<<" ";
    x=2;
    x=x*a/b;
    cout<<x;
    return 0;
}

我得到的输出为:
2
3
而在我看来 x*=a/b; x=x*a/b;意思是一样的。
有人可以解释这种行为吗?

最佳答案

它们并不完全相同。
x *= a / b被分组为 x *= (a / b)a / b发生在整数算术中(它是 1 )。
x = x * a / b被分组为 x = ((x * a) / b) .整数除法具有不那么剧烈和不同的效果。

关于c++ - 有人可以解释速记赋值运算符的实际工作原理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57910826/

相关文章:

PHP 短开放标签与长开放标签

javascript - 以下代码的速记或效率

javascript - Sciter 速记符号

c++ - 在 C++ 中返回多个值和默认参数

c++ - 从非模板基派生模板类

c++ - c++中可修改的char数组类型是什么?

c - 为什么会出现错误: incompatible types when assigning to type 'P_Name_t' from type 'UINT8 *'

c++ - 如何声明一个与已知 const 字符串长度相同的新字符串?

C++ 删除 [] 崩溃

C++ 类 : read value behave as different types