移位运算时很容易出的错误

对于下面的表达式,运算结果应该是多少?

int result = 4 >> 1 + 1;

我不止一次地认为运算结果为4/2+1=3。而实际上,运算结果为:4/4=1。如果(4 >> 1) + 1,结果则为3。这是由于移位操作的优先级比加法运算低。

img