C语言程序设计(关系运算符及关系表达式)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如表达式 5 && 0 ||8 中,5,8 为逻辑真值,0 为逻辑假值,所以该表达式的值是 5 && 0
为 0,0||8 为 1,所以整个表达式的值为 1。
(2)在逻辑表达式的计算中如果前面的表达式的值已经可以确定整个逻辑表达式的值,
则剩下的表达式不求解。比如三个表达式连着做“与“运算,如果前两个表达式中有一个的
(3)在表达式中连续使用关系运算符时,要注意正确表达含义,注意运算优先级和
结合性。
例如:变量 x 的取值范围为“0 ≤ x ≤ 20”时,不能写成“0 <= x <= 20”。因为关
系表达式“0 <= x <= 20”的运算过程是:按照优先级,先求出“0 <= x”的结果,再将结
果 1 或 0 做“<=20”的判断,这样无论 x 取何值,最后表达式一定成立,结果一定为 1。这
些运算符的优先级见图 3-2:
!(非)

算术运算符
关系运算符
&&
||
赋值运算符

图 3-2 部分运算符的优先级
(2)逻辑与(&&):左右两个表达式的值都为逻辑真时其值为真,只要一个为逻辑假其
值为假;
(3)逻辑或(||):左右两个表达式都为逻辑假时其值为假,只要一个为逻辑真其值为
真。跟关系表达式一样,逻辑表达式的值也是逻辑值,用“0”或“1”表示。
逻辑表达式的值遵循如下的真值表规则,假设逻辑运算符左右的表达式为 a,b:
值为逻辑假,则第三个表达式的值不管是什么,整个表达式的值都为逻辑假,所以第三个表
达式不用求解。如:
假设 a=5,b=0 ,表达式为 a>4&&b&&c+5,则 c+5 不会计算,若写成 b&&a>4&&c+5,则 a>4
也不求解。有关这一点,大家可以考虑连着做“或”运算时的情况。
到目前为止,我们已经学习了算术运算符、赋值运算符、关系运算符和逻辑运算符,这
辑“假”值,C 中逻辑“假”值用整数“0”表示,即关系表达式不成立,其值为“0”。
下面的关系表达式都为合法的关系表达式:
(1)8 = = 4 表达式不成立其值为 0;
(2)5 > 0
表达式成立其值为值为 1;
(3)3 > 5 < 9 先求 3>5,该表达式不成立,其值为 0,再计算 0<9,成立,结果为 1;
先级。关系运算符的优先级为表中前四个为同一级,后两个为同一级,而前四个优先于后两
个。优先级相同的关系运算符出现在同一表达式中时,遵循从左到右计算的原则。关系运算
符的优先级低于算术运算符。
关系表达式的值为逻辑值,如果关系表达式成立则其值为逻辑“真”值,C 中逻辑“真”
值用整数“1”表示,即关系表达式成立,其值为“1”;如果关系表达式不成立则其值为逻
表 3-3 逻辑真值表
A
b
!a
!b
a&&b
a||b
0
0
1
1
0
0
0
非0
1
0
0
1
非0
0wenku.baidu.com
0
1
0
1
非0
非0
0
0
1
1
下面为合法的逻辑表达式:
(1)设 x = 10,表达式!x 的值为 0;
(2)设 a = 3, b = 2, 表达式 a &&b 的值为 1;
(3)5 && 0 ||8,其值为 1。
注意:
(1)逻辑运算符左右的表达式的值非逻辑值,则按照非零为逻辑真,零为逻辑假处理,
1. 关系运算符及关系表达式
关系表达式是由关系运算符和运算量组成的式子,运算量包含前面介绍的常量和变量以
及后面将要介绍的函数调用和数组元素等,也可以是 C 中支持的任意一种表达式。关系运算
实际上是逻辑比较运算,它是逻辑运算中的一种。关系运算符如表 3-1 所示:
表 3-1 关系运算符
运算符
含义
结合方向
举例
>
二目运算符 大于
自左至右 a>b,3>8
<
二目运算符 小于
自左至右
a<b,3<8
>=
二目运算符 大于等于
自左至右 a>=b,3>=2
<=
二目运算符 小于等于
自左至右 a<=b,3<=2
==
二目运算符 等于
自左至右 a==b,3==5*a
!=
二目运算符 不等于
自左至右 a!=b,3!=5%7
表中的运算符如果同时出现在同一个表达式中,计算时存在先后顺序,称为运算符的优
显然违背了原来的含义。此时,就要运用下面介绍的逻辑运算符进行连接,即应写为:“0 <=x
&& x <= 20”
2.逻辑运算符及逻辑表达式
逻辑表达式是由逻辑运算符和运算量所构成的式子,其中运算量主要有关系表达式和逻
辑量两种,也可以是 C 中任意合法表达式。逻辑运算符如 3-2 表所示:
表 3-2 逻辑运算符表
(4)若 a = 9 , b = 4 则关系表达式 a + 5 > b * 2 的值为 1。
(5)‘A’!=‘a’两个字符表达式的值进行比较,结果为 1
注意:
(1)“=”和“==”不同,前者为赋值运算符,后者为关系运算符;
(2)关系表达式的值为整数“0”或“1”,所以关系表达式可以作为别的表达式的
运算量使用。
运算符
含义
结合方向
举例
! 逻辑非,单目运算符
自右向左
!(a>b),若 a>b 成立,返回 0
&& 逻辑与,双目运算符
自左向右
a>b &&b>c,左右表达式都成立,返回 1
|| 逻辑或,双目运算符
自左向右
a>b||b>c,左右表达式只要有一个成立,
则返回 1
逻辑运算符的运算规则为:
(1)逻辑非(!):将原表达式的逻辑值取反;
相关文档
最新文档