一、关系运算


若干表达式用关系运算符连接而成,就构成关系表达式。
关系表达式中,表达式成立,其值为1(真);表达式不成立,其值为0(假)。
其他表达式中,其结果如果是非0则为真,结果为0则为假。
关系运算符的优先级低于算术运算符,高于赋值运算符。


关系运算符号:> >= < <= !=


#include "stdio.h"void main()
{ //1、关系运算常用于比较 //2、关系运算只有两种结果,1真,0假
int a=1,b=2,c=3;
printf("\n %d",a==b);
printf("\n %d",a>=b);
printf("\n %d",a!=b);
printf("\n %d",1<=2);
printf("\n %d",c<2);
printf("\n %d",a+b>c);
}

结果为

【004期】关系运算符、逻辑运算符_关系运算符



二、逻辑运算


!(逻辑非)
运算规则:!1 = 0,!0 = 1 。优先级:高。
&&(逻辑与)
运算规则:1&&1=1,1&&0=0,0&&1=0,0&&0=0优先级:中
||(逻辑或)
运算规则:0||1=1,1||0=1,0||0=0,1||1=1。
优先级:低


注意:短路,当与运算时,第一个表达式为假时,不会再处理第2个表达式。


a&&b


当或运算时,第1个表达式为真是,不会再处理第2个表达式


a||b


注意:


另外使用时必须注意以下几点:
代数中的不等式0<x<5必须写成(x>0)&&(x<5)
C语言允许直接对数字或字符进行逻辑运算。
例如:!5,其结果为0。因为在C语言中,非0的值均认为是“真”,而5是个非零值,对非零值求反,即得零值。5&&‘c’,结果为1。因为字符'c'的ASCLL码为非零的整数,非零值与非零值作“与”运算,结果为真。



三、运算优先级


【004期】关系运算符、逻辑运算符_关系运算符_02

【004期】关系运算符、逻辑运算符_优先级_03

(图片来源于百度百科)

运算符优先级由高到低依次降低


上期例句中有

​a = 2;
b = 3;(a > b) ? (a++) : (b++);
printf("a= %d ,b = %d \n", a, b);​

所以我们可以有

a>b不成立则输出 b++

此处++要点

++在前,则先自加1后运算,++在后,则先运算后自加1;

--同理;


又有 

(a)? a : b ;

此处表示为a!=0时为真,输出a,否则输出b.