y > 1) 一个有效的 C 表达式,以及如何评估它? " />
评估 C 中的链式逻辑运算符:(4 > y > 1) 是有效语句吗?
C 编程中的一个常见问题出现在以下情况:评估链式逻辑运算符,例如表达式 (4 > y > 1),本文将探讨此类语句的有效性和评估,深入了解逻辑运算符在 C 中的运算方式。
语法和解析
表达式 (4 > y > 1) 被解析为 ((4 > 1) y) > 1) 这意味着比较运算符 > 从左到右计算,结果为逻辑值 0(假)或每次比较为 1(真)。
评估
在给定表达式中,如果 y 小于 4,则 4 > y 将计算为 1,如果y大于或等于4。然后将该比较的结果与1进行比较,第二个> y。
由于 0 或 1 永远不会大于 1,整个语句将始终返回 false。但是,此规则有一个例外:
运算符重载
如果 y 是自定义类的实例并且 >运算符已被重载以执行非标准比较,则表达式的行为可能会更改。例如,重载 >返回 mytype 对象的运算符会导致语句编译失败。
替代表达式
为了使表达式更直观,可以重写为:
(4 > y) && (y > 1)
此表达式使用逻辑 AND 运算符 (&&) 来组合两个单独的比较,如果两个比较都为 true,则结果为 true。与原始表达式不同,这个重写的表达式提供了对预期评估的更清晰的理解。
以上是(4 > y > 1) 是有效的 C 表达式吗?它是如何计算的?的详细内容。更多信息请关注PHP中文网其他相关文章!