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,则不需要计算后边的表达式,否则需要计算。
|
|