黑马程序员技术交流社区
标题:
逻辑运算符的短路问题
[打印本页]
作者:
泥娃娃
时间:
2016-3-21 09:46
标题:
逻辑运算符的短路问题
int x, y, z, result;
x = y = z = 0;
result = ++x ||(++y&&z++);
printf("x=%d,y=%d,z=%d,result=%d\n",x,y,z,result);
return 0;
复制代码
输出结果并非是1,1,1,1.而是1,0,0,1
是因为逻辑或短路了,
A&&B,若A为假,结果为假,B就不执行了,这就是逻辑与短路。
A||B,若A为真,结果为真,B就不执行了,这就是逻辑或短路。
本题中发生的就是逻辑或短路了,因此y,z都没有尽兴计算。
作者:
muzipiao
时间:
2016-3-21 10:24
好吧,学习了,我也犯错了
作者:
zxinsunshine
时间:
2016-4-4 23:22
请问,当逻辑运算符与自增或自减运算符一起使用的时候,是不是不用考虑逻辑运算符的优先级啊?
作者:
最爱舒儿
时间:
2016-4-5 00:08
学到了
作者:
tdwydan1
时间:
2016-4-5 21:51
出选择题的时候要小心了,这地方陷阱非常多!
作者:
缘之有缘
时间:
2016-4-5 22:11
学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2