c语言为什么a> b> c的赋值为0

如题所述

在C语言中,表达式 a > b > c 并不会按照直观的方式进行比较和赋值。这是因为C语言中的比较操作符 > 是从左向右结合的,但并不意味着这个表达式按照直观的方式进行多次比较。

让我们来分析这个表达式的求值过程:

    首先,表达式 a > b 被计算。如果 a 大于 b,则结果为1(真),否则结果为0(假)。

    然后,将这个结果(0或1)与 c 进行比较,即 0 > c 或 1 > c。

    这里的 0 > c 和 1 > c 都是合法的表达式,但它们并不是赋值操作,而是比较操作,因此它们的结果仍然是0或1。

    所以,a > b > c 表达式的结果是0或1,而不是赋值操作。如果你想进行多次比较并赋值,你应该使用逻辑运算符或条件语句来实现你的目标,而不是将多个比较操作符串联在一起。

温馨提示:答案为网友推荐,仅供参考