C语言中f=a>b>c,a>b是真取1,然后1>c是假取零,但c是一个具体的数,1表示一个真的意思

这俩怎么放到一起比的

C语言中,逻辑值 “真”可以用数值 1 表示,逻辑值 “假”可以用数值 0 表示。
反过来,数值 0 表示"假",数值 非 0 表示"真",(+1,+2,+3,-1,-2,-3 。。。只要不是0的 数值,都是"真")。
所以逻辑值与数值可以混起来运算。
f=a>b>c; 是赋值语句。把 表达式 a>b>c 的值 赋 给 f .
a>b>c 是逻辑表达式,按运算符优先级,可写成: ( (a>b) > c) .
若(a>b) 是"真" 取值 1; (1>c) 若 成立,得 "真" 取值 1,f 得 1; (1>c) 若 不成立,得 "假" 取值 0,f 得 0;
若(a>b) 是"假" 取值 0; (0>c) 若 成立,则得 "真" 取值 1,f 得 1; (0>c) 若 不成立,则得 "假" 取值 0,f 得 0;追问

取a=9,b=5,c=3,这个比较的话,a>b,取1,在用1>3,取0,这样f不就等于0了吗,但这个a>b>c是真啊,请问这是怎么回事?我都蒙了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-18
C语言中不存在bool这种数据类型,真假通过整型的值体现,非0为真,0为假。a>b>c本质上仍是整型之间的运算。
第2个回答  2019-03-18
即使表示真假,c语言里也是数值0,1,可以进行比较的。
第3个回答  2019-03-18
¥iHOtbDuWYMT¥
相似回答