对CPP的情况感到困惑
Confused about if condition CPP
对if条件感到困惑,它是如何执行以下语句的
if(1 && (1 || 0) != 0) or if(1 || (1 && 0) != 0)
在上面的if语句中,执行/验证语句的顺序是什么?(从左到右或从右到左)如果从左到右,那么如果第一个参数/表达式为真,它是否评估第二个表达式/参数?逻辑与和或操作符是否都成立?
谢谢。
如果第一个操作数的计算结果为false
,则逻辑&&
会短路(因为false && x
对所有x都是false
)
如果第一个操作数求值为true
,则逻辑||
短路(因为true || x
对所有x都是true
)
它们都是从左到右求值
从左到右
- 首先执行1。然后执行
(1 || 0) != 0
。为此,它执行1 || 0 -> true,所以整个东西都是true。 - 首先执行1 -它是true,所以它短路并返回true。
从左到右。||如果第一个表达式为真则短路,&&如果第一个表达式为假
这两件事根本不同,请阅读D摩根定律!s
让我们一步一步来分析:
(1 || 0)
变成true
,因为1短路了表达式
所以(1 || 0) != 0
就是true
1 && true
根据逻辑&&操作符
or
是||
的define/关键字,但第一部分已经为真,所以我们再次短路表达式,执行if
块内的代码。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 我可以在不创建项目的情况下在Visual Studio 2019中编译和运行HelloWorld.cpp吗?
- 如何在没有缓冲的情况下使用 parquet-cpp 写入面向流/行的数据?
- 在这种情况下,我如何包括所有.CPP和标头文件
- 在C++中,我不能在不分离标头和 cpp 的情况下实现此类吗?
- 在没有人工交互的情况下,在nginx上为每个cpp突出显示语法
- 在 cpp 中通过正则表达式拆分字符串 --特殊情况
- 测量cpp中的函数内存使用情况
- 如何测量 CPP 程序的缓存使用情况
- cpp 线程程序在没有 -fprofile-arcs 的情况下无法运行
- CPP 建议更好的方法在没有开销/IO 调用的情况下进入静音状态
- 如何在不使用cout/printf的情况下输出文本在cpp和c中
- 如何在没有cpp文件的情况下使用头文件
- 在cpp中,如何使用getline()在没有交互式输入的情况下获得完整的句子
- 如何在不使用IDE的情况下从cpp文件自动生成/更新头文件
- 从vi运行各种c或cpp开发任务"就像在不退出vi的情况下运行cpp程序一样。
- 在这种情况下,是否可以在cpp文件中编写模板专门化?
- 对CPP的情况感到困惑
- 这个cpp代码在没有主函数的情况下是如何运行的
- Visual Studios 在没有 main() 的情况下构建和调试.cpp文件