Nic*_*ton 1 c operator-precedence
参照对于C O'Reilly的袖珍参考,我由说明书有点混乱为的分组*,/和%运营商.这本书说分组是从左到右发生的 - 现在我觉得我的分组与评估顺序混淆了.考虑到下面的等式,以及从书中建立的规则,我会想到......
int x = 4 / 3 * -3
Run Code Online (Sandbox Code Playgroud)
...评估0,因为......
1: 4 / 3 * -3
2: 4 / -9
3: 0
Run Code Online (Sandbox Code Playgroud)
...但是,它实际上是评估-3,似乎使用这种方法......
1: 4 / 3 * -3
2: 1 * -3
3: -3
Run Code Online (Sandbox Code Playgroud)
这是为什么?
对于我,这说得通:
int x = 4 / 3 * -3;
Run Code Online (Sandbox Code Playgroud)
从左到右分组,我们得到:
int x = (4 / 3) * -3
int x = ((4 / 3) * -3);
Run Code Online (Sandbox Code Playgroud)
另请参阅优先级表.它们具有相同的优先级,因此它们从左到右绑定.