关系运算符是用来比较两个运算量大小的运算符,实际上就是一种“比较运算”,运算的结果只能是“1”或“0”。当两者的比较关系成立的时候,结果为“1”;当两者的比较关系不成立的时候,结果为“0”,因此关系运算符的结果类型为整型。C语言中常用的关系运算符如表所示:
关系运算符进行以下几点说明:
(1)关系运算符的优先级别比算术运算符的级别低,但比赋值运算符的级别高。而所有的关系运算符的优先级别也不相同,如表所示,前4种运算符(<、<=、>、>=)
的优先级别相同,后面两种(= =、!=)
优先级别相同。前面四种的优先级别高于后面两种的优先级别。因此关系运算符的运算优先级别如图所示。
例如:
a=2*2<8
该式子的运算顺序为a=((2*2)<8)
,用括号表示其运算优先级,首先算术运算符优先,计算2*2=4
;关系运算符次之,即4<8,关系成立,结果为1,最后是赋值运算符,将关系运算的结果赋值给变量a,即a=1。
(2)关系运算符用于比较的两个运算量的类型为整型、字符型等,也可以连接两个表达式,比较的结果是一个逻辑量,即“真”或“假”,在C语言中没有逻辑型数值,分别用整数1和0表示。例如:
5>=2
该表达式成立,结果为真,用“1”表示。
5-2>=7+1
由于算术表达式的优先级高于关系运算符,因此要先计算关系表达式两侧的算术表达式,然后再进行比较,3>=8
显然不成立,结果为假,用“0”表示。
(3)关系运算符的结合方向是从左向右,因此当一个表达式中出现优先级相等的关系运算符时,从左向右开始运算。例如:
b==a>c
从图可以看出“>”优先级高于“==”的优先级,因此表达式b==a>c
等价b==(a>c)
。如果a=5,b=1,c=3,即1= =5>3,5>3为成立,关系运算的结果为1,1= =1表达式成立,最后表达式b= =a>c的结果为1。
在所有的运算符当中,括号 “()” 的优先级别最高,为了明确运算的顺序,增加程序的可读性,最好将优先运算的表达式用括号括起来。例如:
a=b>=c
从图可以看出关系运算符的优先级高于赋值运算符,但是为了避免运算混淆,将a=b>=c
写成a=(b>=c)
,表示b>=c
的结果赋值给变量c,将用括号使运算更加清晰明了。
(4)在关系运算符用“==”表示等于,用“!=”表示不等于,这与数学中的表示方法完全不同,因此在编程中要特别注意,以免写错关系运算符而导致错误的结果。例如:
a==b
表示判断a与b是否相等,结果是一个整型数,“1”或者“0”。而
a=b
表示将b赋值给a。
评论前必须登录!
注册