3、算yb+c等价于a>(b+c)。如果a和b都是实型数据,应避免使用a==b这样的关系表达式,因为在内存中存放的实型数据是有误差的。注意赋值运算符“=”和关系运算符“==”的区别。4.1.2关系表达式由关系运算符构成的表达式,称关系表达式。关系运算符两边的运算对象可以是C语言中任意合法的表达式。关系表达式的值为“逻辑值”,即“真”和“假”,“真”用整数1来表示,“假”用整数0来表示。以下都是合法的关系表达式:a+b>c+d(a=3)>(b=5)x!=ya>c==c'a'+1=='b''A'+32=='
4、B'【例4.1】关系运算符和关系表达式举例。#includevoidmain(){inta=3,b=5,c=23;charch='A';printf("%d,%d",a>b,ac,ch+32=='a');}运行结果:0,11,00,14.2逻辑运算符和逻辑表达式4.2.1逻辑运算符在C语言中,选择条件不仅可以由关系表达式组成,还可以由逻辑表达式组成,进行逻辑判断时,数据的值为非0,即为逻辑“真”,数据的值
5、为0,即为逻辑“假”。逻辑运算与关系运算的结果都是“逻辑值”,即“真”或“假,分别用整数1和0表示。C语言提供了3种逻辑运算符:(1)!(逻辑“非”)(2)&&(逻辑“与”)(3)
6、
7、(逻辑“或”)逻辑运算符的结合性为从左到右。当参与逻辑“与”(&&)运算的两个操作数都为“真”,结果才为“真”。当参与逻辑“或”(
8、
9、)运算的两个操作数中只要有一个为“真”,结果就为“真”。说明:3种逻辑运算符的优先级从高到低是:!、&&、
10、
11、。逻辑运算符与关系运算符、算术运算符、赋值运算符之间的优先级从高到低是:!(逻辑“非”)、算术运算符、关系运算符、逻辑
12、运算符(&&和
13、
14、)、赋值运算符。例如:x=a+b>c&&!c+d等价于:x=((a+b)>c&&((!c)+d))关于逻辑运算符“!”例如:!(a>b)/*等价于a<=b*/!((a>b)&&(c<=d))/*等价于(a<=b)
15、
16、(c>d)*/在C语言中,由“&&”或“
17、
18、”构成的逻辑表达式,在某些情况下会产生“短路”。例如:inta=0,b=1;a++&&b++;printf("%d,%d",a,b);输出:1,1再如:inta=0,b=1;a++
19、
20、b++;printf("%d,%d",a,b);输出:1,24.2.2逻辑表
21、达式由逻辑运算符构成的表达式,称为逻辑表达式。逻辑运算符两边的运算对象可以是C语言中任意合法的表达式。逻辑表达式的值为“逻辑值”,即“真”和“假”,“真”用整数1来表示,“假”用整数0来表示。以下都是合法的逻辑表达式:a+3>b-5&&!ca
22、
23、b&&cx+y&&xvoidmain(){inta=3,b=5,c=23;intx=9,y=10;printf("%d,%d",a+3>b-5&&!c,a
24、
25、b&&c);printf("%d,%d",x+y
26、&&x