本文已参与「新人创作礼」活动,一起开启掘金创作之路。
C语言三中逻辑运算符知识点
双目运算符:
&& 与运算 (*与就是和,两者里一个为假则都为假*)
‖ 或运算( *或就是两者之中选一个,在这里就是若有一个不为0则结果还是真的*) 单目运算符:
! 非运算 非0的数表示真,为0的数表示假
eg1. &&与运算:
int i;
i=7 && 4;
i=1;( *3和5都不为0,都表示为真* )
int i;
i=1 && 0;
i=0;( *有一个0,都表示为假* )
eg2. 或运算:
int i;
i= 4‖0;
i=1;(*一真一假,在或运算里,结果为真,所以还是i=1*)
int i;
i=0‖0;
i=0;(*两个都是假的,则结果就是假的,则为0)
如果学会了,再来复杂一点的
int i,a=7,b=3;
i=(a<b)&&a ;
i=?
自己可以先算结果是什么再看答案
答案是 i= 0
解析,a<b是假的,则结果为0, 所以式子为
i= 0 && 7;
&&为和运算,两者若有一个为假,则结果为假!
我们再来把&& 改为‖,
那么结果 i=1
单目运算
真的非就是假的,假的非就是真的
举个例子:
int i;
i==9; //9是真的//
!i; (* !表示非,就是相反的意思,则1若i为真,则 !i为假,若i为假,则!i为真*)
i==0;
运算符优先符的关系
!非运算 高于 && 与运算 高于‖ 或运算
! 非运算高于算数运算符(=),其他两个低于运算符
. (*如果还想知道更多的可以看之前发的 运算符的高低 文章*)
简单小题目
我们按照运算符的优先顺序练几道题 a=1,b=2,c=3,d=4;x=1,y=2 (一) a>b&&c>d =?
(二) !b==‖d<a =?
(三) a+b>c&&x+y<b=?
不要直接看答案,先算一下,再看解析
第一个,相当于(a>b) && (c>d) 则 0&&0=0;(别忘了&&为与运算)
第二个,相当于 ((!b)==c)‖(d<a) 则 由于非运算先运算,那么!2=0,再是0不等于3,则左边整个式子为0,右边式子为0 总体为0‖0=0;(别忘了‖运算为或运算)
第三个,首先要知道加减乘除取模运算符仅次于非运算,且比大于小于运算符大,这个也可以找我之前发的优先次序文章找找看,,,
则等于((a+b)>c)&&((x+y)<b), 然后将数据带入结果还是为0