C语言:逻辑操作符
上期答案:
1 |
|
逻辑取反操作符:!
例如有一个变量flag,如果flag为真,那么!flag就为假。如果flag为假,那么!flag就为真
还有a==b为a等于b,那么a!=b就是a不等于b。
与运算符:&&
&&是一个双目操作符,使用方式为a&&b。只有a,b都为真的时候整个表达式才为真,只要有一个为假,整个表达式都为假。
或运算符:||
||也是双目操作符,使用方式为a||b,||两边的表达式只要有一个为真,整个表达式都为真,||两边都为假的时候,整个才为假。
短路
在C语言的逻辑运算符中有一个特点,它总是先对左侧的表达式求值再对右边的表达式求值。
那么如果左边的表达式已经满足了逻辑运算符的条件,那就不再对右边的表达式求值。称为短路。
1 | if(a >= 3 && a <= 5) |
在此代码中如果a等于二,那么a>=就不成立,就不会再判断执行a<=5了。
1 | if(a==1||a==2||a==3) |
那么对于||。如果a等于1,a==1成立,也不会再执行判断后面的表达式了。
1 | int main() |
根据上面的介绍,这段代码的运行结果是:
a = 1
b = 2
c = 3
d = 4
像这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短路求值。