C中的逻辑运算符 “&&”、“||”、“!”是什么意思?怎么区分?
栏目分类:C语言教程 发布日期:2020-06-01 浏览次数:次

首先、这里的三个运算符运算后的结果只能有两个值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