C语言 逻辑运算符
C语言提供了以下三种逻辑运算符。
© ! : 逻辑非
© && : 逻辑与
© || : 逻辑或
C语言中参与逻辑运算的操作数可以是字符型、整型、浮点型等数据类型。
(1)逻辑非(!)
逻辑非是单目运算,表示对操作数取反,当操作数为0,取反后表达式的值为1;当操作数非0,表达式的值为1。例如:
int a=2,b=5;
! a (对a取反,a值为2,代表真,取反后结果为0)
! (a+3>b)(先算a+3>b,值为1,对0取反后为1)
(2)逻辑与(&&)
逻辑与是双目运算,当逻辑与运算符两边的操作数都为真,结果才为真。逻辑与运算的执行类似于图中图a所示的串联电路,假设开关闭合状态代表“真”,断开状态代表“假”;将灯泡亮的状态代表“真”,灭的状态代表“假”,那么只有当K1、K2开关全部闭合(真),灯泡P才会亮(真),其他情况灯泡都不会亮。逻辑与的真值表见表所示。
例如:
int a=3,b=0,c,d;
c=a&&b;
d=a&&b+l;
c的值为假“0”,而d的值为真“1”,因为算术运算的优先级高于逻辑运算,所以先算b+1,再计算逻辑与操作。
d | b | !d | d&&b | allb |
0 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 |
★表中值为“a”用1表示,值为“假B用o表示
(3)逻辑或(||)
逻辑或也是双目运算。参加逻辑或运算的两个操作数只要有一个为真,结果就为真;两个操作数均为假的时候,结果才为假。逻辑或的执行类似于图中图b所显示的并联电路,只要两个开关K1、K2有一个闭合(真),灯泡P就会亮(真)。逻辑或的真值表见表4所示。
例如:
int a=3,b=5,c,d;
c=a||b;
d=a-3||b-5;
c的值为1,因为操作数a、b都为真。而d的值为0,因为算术运算符的优先级高于逻辑运算,先算a-3、b-5,值均为零。所以结果为0。
点击加载更多评论>>