在C语言中,<=这个运算符的结合方向是,从左到右,换句话说,'0'<=c<='\x39'等价于('0'<=c)<='\x39',因为('0'<=c)的结果是true,也就是1。然后再判断1<='\x39',结果也是true,所以最后输出YES。
如下是我做的一些实验,供题主参考
'\x39' 表示十进制的57
A代表的65 ,则c=65
因为c>39 所以if语句的表达式运行结果为NO。
if('0'<=c<='\x39')
相当于
if(('0'<=c)<='\x39')
表达式'0'<=c得到结果为1, 所以就变成
if ( 1 <= '\x39')
所以会输出YES