理论上来讲,& 是位运算符,== 是比较运算符,应当先计算 & 再计算 ==,然而写以下代码时发现:
&
==
if(((s2|(s2<<1)|(s2>>1))&s1)==0)
如果去除 s1 后面的那层括号改为:
s1
if((s2|(s2<<1)|(s2>>1))&s1==0)
运行就会出错。
所以,这俩的优先级到底是什么样的?