1 括号 ()[]
2正负号 +、-
3自增自减,非 ++、--、!
4乘除,取余 *、/、%
5加减 +、-
6移位运算 <<、>>
7大小关系 <、>、<=、>=
8相等关系 ==、!=
9按位与 &
10按位异或 ^
11按位或 |
12逻辑与 &&
13逻辑或 ||
14条件运算 ? :
15赋值运算 =、+=、-=、*=、/=、%=
16位赋值运算 &=、|=、<<=、>>=、>>>=、,
这里面,从上到下,越来越弱,最上面的优先级最高,那么我们现在简单的打一下上面的代码,我们去验证相关的运算符的优先级
第一个:
那么这个代码呢,因为&&的优先级大于||,所以说先运行前面的结果,再将这个结果和后面的++z运行
第二个:
这个,x+1确实是大于零的,但是括号前面加了一个!,就说明是取反,按照正常的结果该是1,所以结果就是0了,那么&&是遇见零就截止,那y++就不需要运算,y依旧是0,这里是个易错点,很容易想成y=1,后面运算就比较简单了,请自行思考
第三个难度上升,先写代码在解释吧
首先最外层他是一个,的运算符,我们首先要比较逗号运算符和>的运算符的优先级,所以他会出现两种情况,
根据上面的优先级表,应该先运行后面的>的式子,也就是说是第二种情况,最后面的式子z=x+y+z=1>0,逗号运算符他运算的特点是先算最后面的式子,所以说z=1,那么再往回走,因为==的优先级是大于+=的,所以说,先定义y=z=1,所以x=2,再往后算,y就等于x+2=4,最后的答案是x=2,y=4,z=1了