int main(int argc, char *argv[]) {
int i = -100;
unsigned u = 10;
cout << "i = " << i << endl;
i *= u;
cout << "i*10 = " << i << endl;
i /= u;
cout << "i = " << i << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果输出不是这样的话,我就不会在这里问这个问题:
i = -100
i*10 = -1000
i = 429496629
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会发生这种情况?因为这对我来说没有任何意义。
PS 预期的行为是通过显式类型转换实现的:i /= (int) u;
c++ ×1