x-- < 5 这一句,的确 -- 优先级比 < 高(如果不是那语法就不成立了),
这一句实际上可以分为两个步骤:
(1): int a = x-- ; // 这里的 a 是 x 自减之前的值
(2): a < 5
注意: x-- < 5 这一句中,-- 优先级高,那么就相当于 (x--) < 5,比较运算时的比较是符号 左边的整体 和 右边的整体 进行比较,和 5 比较的是 ( x-- ) 这一个整体,并不是 x ,这一点很重要,而 ( x-- ) 这一整体的值是 x 自减之前的值,上面分析的第 (1) 步中就可以看出。
分析类似这些容易混淆的题目,建议根据优先级多加括号辅助分析,不要被表面现象迷惑。
(!x||y--)至于这个运算,按优先级加括号,实际等价于 ( (!x) || (y--) ) ,然后 || 运算时是哪个整体和哪个整体进行运算,根据我上面分析的原理相信你应该就明白了吧。
搜一下:自增自减的优先级不是比关系运算符高吗,为什么if(x--<5)算出来的数