自增自减的优先级不是比关系运算符高吗,为什么if(x--<5)算出来的数是先比较后自减
(!x||y--)也是自减在最后
自增自减的优先级不是比关系运算符高吗,为什么if(x--<5)算出来的数
答案:2 悬赏:60 手机版
解决时间 2021-02-10 07:25
- 提问者网友:焚苦与心
- 2021-02-09 07:51
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-02-09 09:28
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--) ) ,然后 || 运算时是哪个整体和哪个整体进行运算,根据我上面分析的原理相信你应该就明白了吧。
这一句实际上可以分为两个步骤:
(1): int a = x-- ; // 这里的 a 是 x 自减之前的值
(2): a < 5
注意: x-- < 5 这一句中,-- 优先级高,那么就相当于 (x--) < 5,比较运算时的比较是符号 左边的整体 和 右边的整体 进行比较,和 5 比较的是 ( x-- ) 这一个整体,并不是 x ,这一点很重要,而 ( x-- ) 这一整体的值是 x 自减之前的值,上面分析的第 (1) 步中就可以看出。
分析类似这些容易混淆的题目,建议根据优先级多加括号辅助分析,不要被表面现象迷惑。
(!x||y--)至于这个运算,按优先级加括号,实际等价于 ( (!x) || (y--) ) ,然后 || 运算时是哪个整体和哪个整体进行运算,根据我上面分析的原理相信你应该就明白了吧。
全部回答
- 1楼网友:怙棘
- 2021-02-09 10:17
搜一下:自增自减的优先级不是比关系运算符高吗,为什么if(x--<5)算出来的数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯