为什么我的代码输出错误,if(c> b> a)会发生什么?

时间:2014-07-13 15:21:08

标签: c operators

#include <stdio.h>

int main() {
int a = 10, b = 20, c = 30;
if (c > b > a)
    printf("TRUE");
else
    printf("FALSE");
return 0;
}

if(c&gt; b&gt; a)会发生什么,我知道这就像if((c&gt; b)&gt; a),但为什么那么假?

3 个答案:

答案 0 :(得分:4)

运营商>是左关联的,因此c > b > a将括号为((c > b) > a)。由于30大于20c > b = 1。所以,

 (c > b) > a => (1 > a) => 1 > 10 => false

答案 1 :(得分:1)

c>b的计算结果为1,不大于10。

答案 2 :(得分:1)

c > b > a表示

(c > b) > a在你的情况下是假的..