c语言中“1”代表真,“0”代表假
逻辑运算符可以将两个或多个关系表达式连接成一个或使表达式的逻辑反转。本节将介绍如何使用逻辑运算符将两个或多个关系表达式组合成一个。表 1 列出了 C++ 的逻辑运算符。
运算符 | 含义 | 效 果 |
---|---|---|
&& | 与 | 将两个表达式连接成一个。两个表达式必须都为 true,整个表达式才为 true |
|| | 或 | 将两个表达式连接成一个。必须有一个或两个表达式为 true,才能使整个表达式为 true。只要其中有一个为 true,那么另外一个就变得无关紧要 |
! | 非 | 反转一个表达式的“真相”。它使一个表达式从 true 变成了 false,或者从 false 变成了 true |
与运算符&&
&& 运算符被称为逻辑与运算符。它需要两个表达式作为操作数,并创建一个表达式,只有当两个子表达式都为 true 时,该表达式才为 true。
1 && 1==1
1 && 0==0
0 && 0==0
或运算符||
|| 运算符被称为逻辑或运算符。它需要两个表达式作为操作数,并创建一个表达式,当任何一个子表达式为 true 时,该表达式为 true。
1 || 1==1
1 || 0==1
0 || 0==0
非运算符!
! 运算符被称为逻辑非运算符,执行逻辑 NOT 操作。它可以反转一个操作数的真值或假值。换句话说,如果表达式为 true,那么 ! 运算符将返回 false,如果表达式为 false,则返回 true。
!1==0
!0==1
接下来,让我们看看360的面试题
其实不难看出题中有两处问题
i= a++ && ++b && d++;
a=0,显然后面的运算并不会执行,便可以知道a=1,b=2,c=3,d=4
如果int i=0,a=1,b=2,c=3,d=4;
i便会执行,a=2,b=3,c=3,d=5
接下来,我们更改题目
i= a++ || ++b || d++;
a=0,会执行哦,运行到第二个便结束了,a=1,b=3,c=3,d=4
如果int i=0,a=1,b=2,c=3,d=4;
a=1便开始执行,运行到第一个便结束了,a=2,b=2,c=3,d=4