0 && 是什么意思?右边缺省的,那么这个值怎么算,为什么3能运行而4不能?

#include <stdio.h>

int main()
{
0 && printf("1, not run!\n");
1 && printf("2, must run!\n");
0 || printf("3, must run!\n");
1 || printf("4, not run!\n");

return 0;
}

这都是利用了c语言的逻辑运算,从而达到有条件地控制语句的运行。
1. 概念

&& - 逻辑与。左右两边都是真,结果才是真。
|| - 逻辑或。左右两边有一边是真就是真。
2. && 和 || 都是从左到右的演算。 如果左边的结果足以影响结果,那么右边就不演算了。这里的演算就是语句的执行。
3. 0 && 。。。 - 左边是0 (假),右边的printf不要执行, 结果必定是假, 所以 not run
1 && 。。。 左边是真,但右边可能是假,所以一定要执行看看。 所以 must run
0 || 。。。。 左边是假,必须要看看右边是否也是假, 所以一定执行, 所以 must run
1 || 。。。。 左边是真, 右边不必看了, 结果比是真, 所以右边的print 不会执行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-14
0 && printf("1, not run!\n"); <=== 0不满足与条件后面的判断不执行
1 && printf("2, must run!\n"); <=== 1满足与条件后面的判断执行
0 || printf("3, must run!\n"); <=== 0不满足或条件后面的判断执行
1 || printf("4, not run!\n"); <=== 1满足或条件后面的判断不执行
也就是在条件一定成立的情况下,系统是不会费劲去判断的本回答被提问者采纳
第2个回答  2014-10-14
printf有返回值
相似回答