pyt*_*nic 5 c logical-operators semantics
条件表达式,例如涉及&&和||的表达式 ,他们总是评价为0或1吗?或者对于真实情况,1以外的数字是可能的吗?我问,因为我想分配一个像这样的变量.
int a = cond1 && cond2;
Run Code Online (Sandbox Code Playgroud)
我想知道我是否应该做以下事情.
int a = (cond1 && cond2)? 1:0;
Run Code Online (Sandbox Code Playgroud)
Jam*_*lis 14
逻辑运算符(&&,||和!)都计算为1或者0.
C99§6.5.13/ 3:
该
&&运营商将产生1,如果两个操作数的比较不等于0; 否则,它会产生0.结果有类型int.
C99§6.5.14/ 3:
该
||运营商将产生1,如果任一操作数的比较不等于0; 否则,它会产生0.结果有类型int.
C99 6.5.3.3/5:
逻辑否定运算符的结果
!是,0如果其操作数的值比较等于0,1则其操作数的值不等于0.结果有类型int.表达式!E等价于(0 == E).