自增自减的优先级不是比关系运算符高吗,为什么if(x--<5)算出来的数

2024年11月30日 03:23
有2个网友回答
网友(1):

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--) ) ,然后 || 运算时是哪个整体和哪个整体进行运算,根据我上面分析的原理相信你应该就明白了吧。

网友(2):

搜一下:自增自减的优先级不是比关系运算符高吗,为什么if(x--<5)算出来的数