a+b3*c
两个算术表达式的值作比较
(a=b)(b=10%c)
两个赋值表达式的值作比较
(a=b)==(bc)
两个关系表达式的值作比较
'A'!='a'
两个字符表达式的值作比较
关系式只有两种可能的结果:或者它所描述的关系成立,或者这个关系不成立,所以说一个关系表达式描述的是一种逻辑判断 。若关系成立,说明关系式表述的关系是"真"的,称逻辑值为"真",用1表示;若关系不成立,说明关系式表述的关系是"假"的,称逻辑值为"假",用0表示 。所以关系表达式的运算结果一定是逻辑值 。
进行关系运算时,先计算表达式的值,然后再进行关系比较运算 。例如:
a=2,b=3,c=4,则上述关系表达式的值为:
a+b3*c
(512)关系不成立
表达式结果值为0(假)
(a+=b)(b*=10%c)
(56)
关系成立
表达式结果值为1
(真)
(a=b)==(bc)
(1==0)关系不成立
表达式结果值为0(假)
'A'!='a'
(65!=97)关系成立
表达式结果值为1(真)
以关系表达式"a+b3*c"为例,因为算术运算的优先级高于关系运算,所以先计算a+b和3*c的值,结果分别为5和12,再将5和12进行关系比较,其运算结果为0 。
在表达式中连续使用关系运算符时,要注意正确表达含义,注意运算优先级和结合性 。
例如,变量x的取值范围为"0≤x≤20"时,不能写成"0=x=20" 。因为关系表达式"0=x=20"的运算过程是:按照优先级,先求出"0=x"的结果,再将结果1或0作"=9"的判断,这样无论x取何值,最后表达式一定成立,结果一定为1 。这显然违背了原来的含义 。此时,就要运用下面介绍的逻辑运算符进行连接,即应写为:"0=x
【条件运算符?的运算过程是什么 条件运算符】
x=9" 。
3.4.2
逻辑运算符与逻辑表达式
1.逻辑运算符
C语言规定的3种逻辑运算符及其有关的说明见表3-7 。
表3-7
逻辑运算符
运算符
含义
运算对象个数
结合方向
简例
逻辑与
双目运算符
自左向右
ab,38a==b
||
逻辑或
双目运算符
自左向右
a||b,3=b8||a==b
!
逻辑非
单目运算符
自右向左
!a,!a==b
逻辑运算要求运算对象为"真"(非0)或"假"(0) 。这三种逻辑运算符的运算规则可用表3-8的真值表表示:
表3-8
逻辑运算真值表
a
b
ab
a||b
!a
!b
1
1
非0
1
1
非0
1
1
非0
非0
1
1
在一个逻辑表达式中,可以含有多个逻辑运算符,其优先级是:"!"最高,""次之,"||"最低;逻辑运算优先级低于所有关系运算,而"!"优先级高于所有算术运算 。
例如:某程序中有如下说明:int
a=3,b=1,
x=2,
y=0;则:
①
(ab)
(xy)
的值为1 。
②
ab
xy
的值为1 。
注意:①②两式是等价的,因为""运算优先级低于关系运算,故括号可以省略 。
③
(y||b)
(y||a)
的值为1 。
④
y||b
y||a
的值为1 。
注意:③④两式结果虽然一样,但两式的含义不同 。③式中由于括号的优先级高于"",因此,先计算"y||b"和"y||a"后,再将两个结果进行""运算 。而④式由于""的优先级高于"||",故要先计算"by",其结果为0,再计算"y||0",其值也为0,最后计算"0||a",结果为1 。由此可见,运算符的优先级制约着表达式的计算次序 。
⑤
!a
||
ab
的值为1 。
此式中"!"的优先级高于">",而
">"的优先级高于"||",故先计算"!a",其值为0,再计算"ab",其值为1,最后计算"0||1",值为1 。
3.4.3
条件运算符与条件表达式
条件运算符是C语言中唯一具的三目运算符,就是说它有三个运算对象 。条件运算符的形式是"?
:"由它构成的表达式称为条件表达式 。其形式为:
表达式1
?
表达式2
:
表达式3
条件运算符的"?"个":"总是成对出现的 。条件表达式的运算功能是:先计算表达式1的值,若值为非0,则计算表达式2的值,并将表达式2的值作为整个条件表达式的结果;若表达式1的值为0,则计算表达式3的值,并将表达式2的值作为整个条件表达式的结果 。例如有以下条件表达式:
(ab)?a+b:a-b
当a=8,b=4,c=3时,求解条件表达式的过程如下:
先计算关系式ab,结果为1,因其值为真,则计算a+b的结果为12,这个12就是整个条件表达式的结果 。请特别注意,此时不再计算表达式a-b了 。如果关系式ab的结果为0,就不再计算表达式a+b了 。这一点在应用中很重要 。
秒懂生活扩展阅读
- 火焰山是怎么形成的什么写 火焰山是怎么形成的
- 天王送子图的作者是谁 天王送子图
- 信达雅的翻译标准得到了人们的认可 信达雅
- 白沙鱼是哪里的鱼
- 历史名人勤奋学习的故事别太常见
- 牛杂是什么呀
- 带箭图的成语有哪些
- 什么样的疑问句中可用some
- 历史的优美语录
- 求几部可以媲美武极天下的小说