真正了解&&和||
2016-04-27 20:14
218 查看
最近看到各大牛说了一些各大公司的面试题,其中看到一个涉及与和或的,查了一些资料,自己有搞了一搞,才发现当初学C语言时并没有真正掌握到,故写下此文。
这段代码运行结果是:
2, run!
3, run!
分析:当a&&b时,若a为false,则不用运行b,若a为true,则要检验b是否为true;
当a||b时,若a为true,则不用运行b,若a为false,则要检验b是否为true;
运行结果为
4
5
分析:a||b&&c,当a为true时,就可以略过b和c;
当a为false时,根据上面的依次判断b和c。
运行结果为:
2
5
分析:a&&b||c,当a为true时,要判断b,此时有两种情况:
b为true,则不用判断c,因为a&&b=true,即true||c,略过c。
b为false,则判断c,因为a&&b=false,即false||c,故要判断C。
当a为false时,则直接略过b,直接判断C。(这个很容易会错!!)
int main() { 0 && printf("1, run!\n"); 1 && printf("2, run!\n"); 0 || printf("3, run!\n"); 1 || printf("4, run!\n"); }
这段代码运行结果是:
2, run!
3, run!
分析:当a&&b时,若a为false,则不用运行b,若a为true,则要检验b是否为true;
当a||b时,若a为true,则不用运行b,若a为false,则要检验b是否为true;
int main() { 1||printf("2\n")&&printf("3\n"); 0||printf("4\n")&&printf("5\n"); }
运行结果为
4
5
分析:a||b&&c,当a为true时,就可以略过b和c;
当a为false时,根据上面的依次判断b和c。
int main() { 1&&printf("2\n")||printf("3\n"); 0&&printf("4\n")||printf("5\n"); }
运行结果为:
2
5
分析:a&&b||c,当a为true时,要判断b,此时有两种情况:
b为true,则不用判断c,因为a&&b=true,即true||c,略过c。
b为false,则判断c,因为a&&b=false,即false||c,故要判断C。
当a为false时,则直接略过b,直接判断C。(这个很容易会错!!)
相关文章推荐
- Socket简单理解
- 集合框架--对象数组的内存图解
- OK6410之uboot时钟初始化---嵌入式回归第十一篇
- JAVA原型模式
- 2016.4.22GDOI模拟赛总结
- 【VR】VR制作的规格分析
- APIO2015 UOJ #110 - #112 题解
- HDU 1323 Perfection(公因子)
- Maven私服问题汇总---学习笔记
- 集合的三种遍历方式
- Heap Data Structure and Heap Sort
- Scrum 之 每日站会
- 如何修改已经提交SVN的log
- Java资源文件读取
- poj3468——A Simple Problem with Integers(线段树,区间更新)
- EventBus使用详解(二)——EventBus使用进阶
- Android应用启动界面分析(Starting Window)
- 【AR】关于AR实时阴影的制作
- cocos2dx 3.10 黄金矿工学习笔记
- nyoj 20