为了账号安全,请及时绑定邮箱和手机立即绑定

C ++如何处理&&?(短路评估)

C ++如何处理&&?(短路评估)

C++
料青山看我应如是 2019-07-27 14:28:18
C ++如何处理&&?(短路评估)当遇到(bool1 && bool2)时,如果发现bool1为false,c ++是否会尝试检查bool2,或者它是否像PHP那样忽略它?对不起,如果它是一个问题的基础,但我真的无法在Schildt和互联网上找到这一点。
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

是的,&&C ++中的运算符使用短路评估,因此如果bool1对其进行评估,false则无需进行评估bool2

“短路评估”是您希望Google在索引中查找的奇特术语。


查看完整回答
反对 回复 2019-07-27
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

C ++确实使用短路逻辑,因此如果bool1为false,则不需要检查bool2

如果bool2实际上是一个返回bool或使用指针的函数,这很有用:

if ( pointer && pointer->someMethod() )

没有短路逻辑,它会在取消引用NULL指针时崩溃,但是使用短路逻辑,它可以正常工作。


查看完整回答
反对 回复 2019-07-27
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

这是正确的(短暂的行为)。但要注意:如果调用的操作符不是内置操作符,而是用户定义的operator&&(与之相同operator||),则短路停止。

参考此SO


查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 333 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信