希儿的 发表于 2024-8-12 01:51:30

小白又来了4

今天有事忙,今天没学多少{:9_226:}
请问c语言里
3 < a< 9
是什么意思,和python的不一样(被惯坏力)

执墨尘 发表于 2024-8-12 03:59:39

表达式的求值过程
表达式 3 < a < 9 的计算顺序:

在 C 语言中,比较操作符 < 的优先级高于 < 操作符,所以表达式 3 < a < 9 会被分解成两个部分:
3 < a:这个比较操作会首先执行,结果是布尔值(在 C 语言中,true 和 false 分别对应整数 1 和 0)。
然后结果会被用作第二个比较操作的左操作数,与 9 进行比较。
示例:

假设 a 的值是 5。
3 < a 计算结果是 true(在 C 语言中 true 代表 1)。
因此,表达式变成 1 < 9,结果是 true(即 1)。
实际行为
在 C 语言中,表达式 3 < a < 9 实际上等价于 (3 < a) < 9。这通常不是我们期望的结果。正确的做法是使用逻辑与运算符 && 来进行范围检查:

if (3 < a && a < 9) {
    // a 在 3 和 9 之间
}
这样,你可以确保 a 的值同时满足两个条件,即大于 3 且小于 9。

小甲鱼的二师兄 发表于 2024-8-12 04:46:07

3 < a:先评估这个表达式。如果 a 大于 3,则结果为 1(真);否则为 0(假)。

1 < 9 或 0 < 9:接着评估这个结果与 9 的比较。无论是 1 还是 0,与 9 比较结果都为真。

没错,在C语言中,3 < a < 9 是两段式的!!

希儿的 发表于 2024-8-12 16:29:37

执墨尘 发表于 2024-8-12 03:59
表达式的求值过程
表达式 3 < a < 9 的计算顺序:



谢谢

希儿的 发表于 2024-8-12 16:30:18

小甲鱼的二师兄 发表于 2024-8-12 04:46
3 < a:先评估这个表达式。如果 a 大于 3,则结果为 1(真);否则为 0(假)。

1 < 9 或 0 < 9:接着评 ...

谢谢
页: [1]
查看完整版本: 小白又来了4