1. 编程学习网 > 编程教程 > C语言教程 > C中的逻辑运算符 “&&”、“||”、“!”是什么意思?怎么区分?

C中的逻辑运算符 “&&”、“||”、“!”是什么意思?怎么区分?


首先、这里的三个运算符运算后的结果只能有两个值True和False。下面的示例代码中True用1表示,False用0表示。
 
1、“&&”(与):逻辑与运算符
或者称为“和”,意思就和高中数学中的“∩”类似,主要强调两个值都满足条件,若想要为True,则必须两个都是True,只要一个不是True,则结果都不为True。例子如下。

         A=0;
         B=0;
         A&&B输出就是0

         A=1;
         B=0;
         A&&B输出就是0

         A=0;
         B=1;
         A&&B输出就是0

         A=1;
         B=1;
         A&&B输出就是1
 
2、“||”(或):逻辑或运算符
或,意思就是或者,意思就和高中数学中的“∪”类似,主要强调的是有没有,只要有为True的,不管是几个,结果都是True。例子如下。

         A=0;
         B=0;
         A||B输出就是0

         A=1;
         B=0;
         A||B输出就是1

         A=0;
         B=1;
         A||B输出就是1

         A=1;
         B=1;
         A||B输出就是1
 
 
3、“!”(非):逻辑非运算符
“非”,计算机中的非就是对值有相反的意思,!0=1,!1=0,它是单目操作符,也就是说只对他后面的值或表达式有影响。

         A=0;
         !A输出就是1

         A=1;
         !A输出就是0

         A=1;
         B=0;
         !(A&&B)输出就是!(0)=1。
 
4、注意事项和简单例子
这里需要说明一下若B=2,C=-1,在进行逻辑运算符的时候,不管值是多少,只要不是0,我们都把它当为1,也就是我们的眼里只有0或者1。所以这里的B=2,C=-1等价于B=1,C=1。
 
这里还要强调一下这三个逻辑运算符的优先级。“!”逻辑非运算符是要优先于“&&”逻辑与运算符 和 “||”逻辑或运算符。
 
int  A=0,B=2,C=-1;
int  D=!A||(B&&C||A);
 
这里D等于多少?
这里的运算符高低排序: ()、!、||和&&等级,等级的话就是按照从左到右的顺序。
 
下面我来一步一步简化
!A||(B&&C||A)
=!A||(1||A)       //括号里面运算符等级相同,所以从左到右
=!A||1           //选算括号里面的
=1||1                         //!优先级高于||             
=1              
所以这里D就为1。
 

本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/cyuyan/478.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休