在C语言中,比较符(或称比较运算符)称为关系运算符。所谓“关系运算”即为“比较运算”,将两个数值进行比较,判断其比较的结果是否符合给定的条件。
一.关系运算符及其优先次序 关系运算符属双目运算符,结合方向自左向右
C语言提供六种关系运算符:
1.< (小于) 1~4 优先级相同(高)
2.<=(小于或等于)
3.> (大于)
4.>= (大于或等于)
5.==(等于) 注: 一个=符号表示赋值运算符,等号左边为左值,是一变量(并不是任何形式的数据都可以作为左值,左值应当为存储空间并可以被赋值,所以左值不能是算数表达式和常量);等号右边为右值(左值也可以出现在赋值运算符的右侧,凡是左值都可以做为右值)。赋值表达式中的“表达式”又可以是一个赋值表达式,eg:a=(b=5)意为执行b=5和a=b,同时,赋值运算符按照自右而左的结合顺序,因此(b=5)外面的括号可以不要,即a=(b=5)与a=b=5等价,都是先求b=5的值,再将b值赋予a。
6.!= (不等于) 5~6 优先级相同(低)
1~4 优先级相同,5~6优先级相同,1~4优先级高于5~6。
(优先级:算数运算符(运算)>关系运算符(比较)>赋值运算符(赋值))
二.关系表达式
定义:用关系运算符将两个数值或数值表达式连接起来的式子。
关系表达式的值是一个逻辑值,即“真”或“假”。C语言的逻辑运算中,以1代表真,0代表假。
eg1:令a=3,b=2,c=1,则:
1.关系表达式“a>b”值为“真”,表达式值为1;
2.关系表达式“(a>b)==c”的值为“真”(因为a>b的值为1,等于c的值),表达式值为1;
3.关系表达式“b+c<a”的值为“假”,表达式的值为0;
4.d=a>b,由于a>b为真,因此关系表达式a>b的值为1,所以赋值后d的值为1;
f=a>b>c,则f值为0,因为“>”运算符自左至右结合,先执行“a>b”得值为1,再执行关系运算“1>c”,得值0,赋给f,所以f值为0。