C++ "短路求值"策略
来源:互联网 发布:吉他乐理视频 知乎 编辑:程序博客网 时间:2024/06/02 04:33
什么是短路求值
逻辑与和逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解其右操作数。我们常常称这种求值策略为”短路求值(short-circuit evaluation)“
为什么要短路求值
1、提高程序的运行效率:能够通过左操作数就确定逻辑表达式的结果不计算右操作数降低了程序计算量,提高程序效率;
2、防止出现难以预料的后果;
3、代码的逻辑更为紧密。
例子
#include <iostream>#include <string>using namespace std;int main(){ string str(""); if(!str.empty() && 'c'==str[0]) { //写法1 cout << str << endl; } if( 'c'==str[0] && !str.empty()) { //写法2 cout << str << endl; } return 0;}因为str字符串为空,所以str.empty()为true,!str.empty()则为false,所以写法1的右操作数‘c’==str[0]就不会执行;而写法2最先执行的就是‘c’==str[0],而str[0]是我们没有分配的一段内存空间,对它进行读写都是不合法的,将会产生的结果也是难以预料的。
阅读全文
1 0
- C++ "短路求值"策略
- C/C++为什么要短路求值?
- 短路求值
- 短路求值
- 短路求值
- C++短路求值
- "&&"和"||",短路求值
- 短路求值实现逻辑
- c++短路求值
- scala求值策略
- Scala的求值策略
- 逻辑表达式短路求值问题
- c++中短路求值的妙用
- 短路求值(Short-circuit evaluation)
- 【C】短路
- c实现表达式求值
- c/c++ 表达式求值
- 表达式求值c语言
- IT战略规划项目方法论(德勤、埃森哲、IBM、凯捷)
- java基础知识
- ssh--web.xml
- codevs3027 线段覆盖2
- Java并发之CyclicBarrier、CountDownLatch、Phaser
- C++ "短路求值"策略
- HDOJ1000
- sdfsdf
- Oracle 触发器
- leetcode
- 使用sudo apt-get update总是报错软件包缓存文件损坏
- 编辑器vi的使用
- python应用
- JS面向对象详解