这个为什么不是no,这个表达式不是0到9吗

img


阅读下列程序,其运行结果是()

main()
{ char c='A';
if ('0'<=c<='9') printf("YES");
else printf("NO");
}
c语言,这个真的看不出来,'A'不是不在这个‘0’和‘9’的范围吗

'0'<=c<='9'

'0'<=c && c<='9'
含义不同

'0'<=c<='9'
表示
('0'<=c ? 1 : 0)<=('9')

这种写法就是先判断0<=c,然后结果就是真假也就是1或者0,再判断1或者0<='9',成立,返回YES

img