C语言逻辑运算符还有一个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的
如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值,这种情况称为短路
对于&&操作符:
if(month >= 3 && <= 5)
当左边表达式的结果为0(即为假)时,即使右边表达式不执行,整个表达式的结果也是0
对于||操作符
if(month == 12 || month ==1 || month == 2)
如果month=12,则不用再判断month是否等于1或者2,整个表达式的结果也是1
所以||操作符的左操作数的结果不为0时,就无需执行右操作数
练习:阅读代码,计算代码输出的结果
结果为:a=2 b=3 c=3 d=5