#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/

10-09 19:55