是这样子的
如果单独只printf("%d",C>b);//或者是b>a输出是1
但是数学上的表达式c>b>a直接放到计算机里面,解析的过程是不一样的
先判断c>b返回真假,为真即为1,为假即为0
c>b结果是1 然后再继续 1>a
结果为零。
再不然,你把a初始化为0,结果为1
输出结果应该是1
c=a,把a的值赋给c,c不等于0,所以if条件为真,输出c
也是就1了.
因为c>b>a是一个关系表达式,关系表达式只会返回两个值,一个是true 一个是false
c>b>a的关系是不成立的所以返回false 在C和C++中0代表false假 1代表true真
他是这么判断的先判断c>b这个是假的返回0,然后用0和a比较也是假的,所以输出0
你改下格式printf(“%d>%d>%d”,c,b,a); 试试