C 中的短路求值:是否像 Java 中一样有保证?
在 Java 中,短路求值机制确保表达式从左到右顺序评估,一旦遇到错误值就停止。这种行为可以有效地利用条件,例如:
if (a != null && a.fun());
C 可以提供相同的保证吗?
在 C 中,短路评估也用于内置数据类型和运算符。但是,保证与 Java 不同。
if (a != 0 && a->fun());
这里,a != 0 计算结果为 true 或 false,仅当 计算结果为 true 时,才是 a->fun () 执行。这种有保证的行为仅适用于内置类型。
重载 & 和 ||在 C
C 中的自定义类型可以重载 && 和 ||运营商。发生这种情况时,不能保证短路评估。因此,通常不鼓励为自定义类型重载这些运算符。
以上是C 中的短路评估:与 Java 中一样可靠吗?的详细内容。更多信息请关注PHP中文网其他相关文章!