A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© zsling 中级黑马   /  2014-12-11 18:30  /  688 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C语言视频教程中运算符章节中的逻辑与&&运算符注意事项,之前学习的时候没有注意到这一点,今天重新看发现了这个问题,写出来与大家共勉,已经了解的可以直接跳过,不了解的可以一块学习哈。
#include <stdio.h>
int main()
{
int a,b,c,d;
a = 10;
b = 11;
c = a<5 && ++b >= 11;  //注意此处,a<5已经成立,则需要计算后边的++b >= 11,则a=10,b=12,c=1
printf("a = %d\nb = %d\nc = %d\n", a, b, c);
d = a>5 && ++b >=11; //此处,a>5不成立,则d已经确定为0,则不必计算++b >=11,所以a=10,b=11,c=0
printf("a = %d\nb = %d\nd = %d\n", a, b, d);
return 0;
}

输出结果:
a=10
b=12
c=1
a=10
b=11
c=0

同样,||也是这样的运算法则,如果||前边的表达式已经判断为1,则不需要计算后边的表达式,否则需要计算。
您需要登录后才可以回帖 登录 | 加入黑马