逻辑运算&&,||和!真的很简单么?
结果为:
1 0 0
与的优先级高于或
程序中的短路:
1)||从左向右开始计算
a>当遇到为真的条件时,停止计算,整个表达式为真。
b>所有条件为假时表达式为假。
2)&&从左向右开始计算
a>当遇到为假的条件时停止计算,整个表达式为假。
b>所有条件为真时表达式才为真。
逻辑表达式中,&&比||具有更高的优先级。
在&&和||混合运算时,整个表达式被看作||表达式,编译器从左向右开始计算&&表达式,当某个&&表达式的值为真时,停止计算,整个表达式的值为真。
打印In f()…
In main: 1
C语言中的逻辑非“!”只认得0,只知道见了0就返回1.因此当碰见的值不是0时,其结果为0。
小结:
1)程序中的逻辑表达式遵从短路原则;
2)在&&与||混合运算时:
a> 整个表达式被看作||表达式;
b> 从左向右先计算&&表达式;
3)逻辑非!运算符只认得0:
a> 碰见0返回1,否则统统返回0。
只有0才代表假,其余的所有值均代表真。