博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“逻辑与”规则的最新认识
阅读量:4678 次
发布时间:2019-06-09

本文共 767 字,大约阅读时间需要 2 分钟。

在原本的印象里,逻辑与“&&”的两个操作数是不考虑顺序的,C++ Primer中明确指出其实不然,两个操作数有顺序而且从逻辑解析的角度来讲,这个顺序是必须的,下面是C++ Primer中摘录的几句话:

“逻辑与和逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。只有在仅靠左操作数的值无法确定该逻辑表达式的结果时, 才会求解其右操作数。 我们常常称这种求值策略为“短路求值(short-circuit evaluation)”。”

1 string s("Expressions in C++ are composed..."); 2 string::iterator it = s.begin(); 3 // convert first word in s to uppercase 4 while (it != s.end() && !isspace(*it)) { 5        *it = toupper(*it); // toupper covered in section 3.2.4 (p. 88) 6        ++it; 7      }

“在这个例子中,while 循环判断了两个条件。首先检查 it 是否已经到达 string 类型对象的结尾,如果不是,则 it 指向 s 中的一个字符。只有当该检验条件成立时,系统才会计算逻辑与操作符的右操作数,即在保证 it 确实指向一个真正的字符之后,才检查该字符是否为空格。如果遇到空格,或者 s 中没有空格而已经到达 s 的结尾时,循环结束。”

高亮显示的那句话表明,逻辑与对操作数的操作是必要顺序的 

 

 

 

 

 

转载于:https://www.cnblogs.com/tingshuixuan2012/archive/2013/03/21/2972736.html

你可能感兴趣的文章
前端MVC实践之hellorocket——by张舒彤
查看>>
OptimalSolution(2)--二叉树问题(3)Path路径问题
查看>>
IPC 之 Messenger 的使用
查看>>
爱情八十六课,等得不是爱情
查看>>
企业网站建设流程
查看>>
数据库的显示、创建、使用 、用户授权管理及忘记root用户后重置密码
查看>>
ES5和ES6中的继承 图解
查看>>
macos 下usb键盘问题.
查看>>
SQL函数学习(十六):STUFF()函数
查看>>
CI CLI执行方式
查看>>
201521123092《Java程序设计》第七周学习总结
查看>>
day23---ajax跨域解决---JSONP
查看>>
redis封装 get查询/删除key/keys查询
查看>>
移动端自适应js
查看>>
Pro Android学习笔记(三二):Menu(3):Context菜单
查看>>
java中用StringBuffer写文件换行
查看>>
c#ASP.NET中页面传值共有这么几种方式
查看>>
ios 截屏
查看>>
vue2.0 路由学习笔记
查看>>
[转]JAVA回调机制(CallBack)详解
查看>>