C语言关系运算符

关系运算符是用来比较两个运算量大小的运算符,实际上就是一种“比较运算”,运算的结果只能是“1”或“0”。当两者的比较关系成立的时候,结果为“1”;当两者的比较关系不成立的时候,结果为“0”,因此关系运算符的结果类型为整型。C语言中常用的关系运算符如表所示:

C语言关系运算符

关系运算符进行以下几点说明:
(1)关系运算符的优先级别比算术运算符的级别低,但比赋值运算符的级别高。而所有的关系运算符的优先级别也不相同,如表所示,前4种运算符(<、<=、>、>=)的优先级别相同,后面两种(= =、!=)优先级别相同。前面四种的优先级别高于后面两种的优先级别。因此关系运算符的运算优先级别如图所示。

C语言关系运算符

例如:

        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。

赞(0)

评论 抢沙发

评论前必须登录!