C语言提供了一组逻辑运算符:或(||)、且(&&)、非(!),分别对应于命题逻辑中的 OR、AND、NOT运算。
逻辑运算认为所有非零的参数都表示为TRUE,而参数0表示FALSE,它们返回1(TRUE)或0(FALSE)。
逻辑运算符&&和||与对应的位级运算&和|之间一个重要区别是,如果对第一个参数求值就能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。
逻辑运算符和其它运算符优先级从低到高依次为:
逻辑非 ! > 算术运算符 > 关系运算符 > 逻辑与 &&、逻辑或 || > 赋值=
更详细的运算符优先级可参考之前发布的文章:《C运算符的优先级和结合性》