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