逻辑运算符及其优先次序(一)
分为两篇
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;
运算符优先符的关系
!非运算 高于 && 与运算 高于‖ 或运算
! 非运算高于算数运算符(=),其他两个低于运算符
. (*如果还想知道更多的可以看之前发的 运算符的高低 文章*)