1.关系运算符和关系表达式
(1)关系运算符
在C语言中,比较符(或称比较运算符)称为关系运算符。
①< 小于
②<= 小于等于
③> 大于
④>= 大于等于
⑤== 等于
⑥!= 不等于
其中,①②③④的优先级别相同,⑤⑥的级别相同,前者的优先级大于后者。
关系运算符的优先级低于算数运算符。
关系运算符的优先级高于赋值运算符。
例如:
c>a+b 等价于 c>(a+b)
a>b==c 等价于 (a>b)==c
a==b<c 等价于 a==(b<c)
a=b>c 等价于 a=(b>c)
(2)关系表达式
用关系运算符将两个数值或数值表达式连接起来的式子,称为关系表达式。
例如:a>b,a+b>b+c,(a=3)>(b=5),'a'<'b',(a>b)>(b<c).
关系表达式的值是一个逻辑值,即“真”和“假”。如:
“5==3”为假,“5>=3”为真。
在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”。如:
d=a>b,由于a>b为真,因此关系表达式a>b的值为1,所以赋值后d的值为1。
f=a>b>c,则f的值为0.因为“>”运算符是自左至右的结合方向,先执行“a>b”得值为1,然后执行“1>c”得值为0,所以f的值为0。
2.逻辑运算符和逻辑表达式
(1)逻辑运算符
逻辑运算符有三种:与(AND),或(OR),非(NOT).在C语言中,&&为与,||为或,!为非。
其中,“&&”和“||”为双目(元)运算符,要求有两个运算对象,“!”是单目运算符,只要求有一个运算对象。
优先次序:!>&&和||。
!>算数运算符>关系运算符>&&和||>赋值运算符。
例如:
(a>b)&&(x>y) 等价于 a>b&&x>y
(a==b)||(x==y) 等价于 a==b||x==y
(!a)||(a>b) 等价于 !a||a>b
(2)逻辑表达式
用逻辑运算符将关系表达式连接起来的式子叫逻辑表达式。
在逻辑表达式中,以"1"为真,“0”为假。如:
if(x) 语句1 //表达式为变量,如果x不等于0,则条件判断结果为真,执行语句1
if(1) 语句2 //表达式为非0整数,条件判断结果为真,执行语句2
if(0) 语句3 //表达式为整数0,条件判断结果为假,不执行语句3,接着执行下一语句
3.条件运算符和条件表达式
(1)有一种 if 语句,当被判别的表达式的值为"真"或"假"时,都执行一个赋值语句且向同一个变量赋值。如:
if(a>b)
max=a;
else
max=b;
可以把上面的if语句改写为:
max=(a>b)?a:b;
其中“(a>b)?a:b”为一个“条件表达式”,“?”为条件运算符。
如果( a > b )条件为真,则条件表达式的值等于 a ;否则取值 b 。
条件运算符是由两个符号(?和:)组成,必须一起使用。要求有三个操作对象,称为三目(元)运算符。
条件表达式的一般形式为
表达式1?表达式2:表达式3
可以这样形象地理解:先计算出表达式1的值,表达式1后面的问号表示"该往哪里走啊?",有两条路,如果表达式1的值为真(非0),自然直接到表达式2,如为假(0值),就绕过表达式2,到表达式3。
条件运算符优先于赋值运算符。