土沙拉 发表于 2017-12-11 17:22:40

新手求助一个简单的问题

('9'>=ch&&ch>='0') 和('9'>=ch>='0') 是一个意思吗?
编译出来结果不相同,但是不同的原因是什么?
向各位大神求教

BngThea 发表于 2017-12-11 17:28:52

因为不同的编译器对'9'>=ch>='0'的解释可能不同
可能是
'9'>=ch&&ch>='0'
也有可能是
ch>='0'&&'9'>=ch
或者其他可能

所以,不要写这样可能产生歧义的写法

土沙拉 发表于 2017-12-11 17:47:42

BngThea 发表于 2017-12-11 17:28
因为不同的编译器对'9'>=ch>='0'的解释可能不同
可能是
'9'>=ch&&ch>='0'


可是这不都是一个意思吗?{:5_94:}

BngThea 发表于 2017-12-11 18:29:38

当然有区别,请百度 与逻辑短路
再说了,还有可能被解释为其他含义

爱晴海 发表于 2017-12-11 20:32:28

vc环境下只能分开写,不能a<x<b;系统只会依据自左向右运算,若a<x则是1,在于b相比。性质与你要表达的截然不同。

luckstudent 发表于 2017-12-11 21:54:06

如果哪本教材上这么写,建议把这本书丢了吧。映像中&&的优先级是小于关系运算符的,这么说明白了么?

zqianglh 发表于 2017-12-11 22:52:18

('9'>=ch>='0')这是错的

zhaxiaohu 发表于 2017-12-11 23:40:50

'9'>=ch>='0'这种写法我都不能正常运行你还可以编译溜
页: [1]
查看完整版本: 新手求助一个简单的问题