在程序中經常需要比較兩個量的大小關系,以決定程序下一步的工作。比較兩個量的運算符稱為關系運算符。
在C語言中有以下關系運算符:
關系運算符都是雙目運算符,其結合性均為左結合。關系運算符的優先級低於算術運算符,高於賦值運算符。在六個關系運算符中,<、<=、>、>=的優先級相同,高於==和!=,==和!=的優先級相同。
關系表達式的一般形式為:
表達式 關系運算符 表達式
例如:
a+b>c-d
x>3/2
‘a’+1<c
-i-5*j==k+1
都是合法的關系表達式。由於表達式也可以又是關系表達式。 因此也允許出現嵌套的情況。例如:
a>(b>c)
a!=(c==d)
等。
關系表達式的值是真”和“假”,用“1”和“0”表示。如:
【例5-1】
復制純文本新窗口
- #include <stdio.h>
- int main(void){
- char c='k';
- int i=1, j=2, k=3;
- float x=3e+5, y=0.85;
- printf( "%d,%d\n", 'a'+5<c, -i-2*j>=k+1 );
- printf( "%d,%d\n", 1<j<5, x-5.25<=x+y );
- printf( "%d,%d\n", i+j+k==-2*j, k==j==i+5 );
- return 0;
- }
#include <stdio.h> int main(void){ char c='k'; int i=1, j=2, k=3; float x=3e+5, y=0.85; printf( "%d,%d\n", 'a'+5<c, -i-2*j>=k+1 ); printf( "%d,%d\n", 1<j<5, x-5.25<=x+y ); printf( "%d,%d\n", i+j+k==-2*j, k==j==i+5 ); return 0; }
在本例中求出了各種關系運算符的值。字符變量是以它對應的ASCII碼參與運算的。對於含多個關系運算符的表達式,如k==j==i+5,根據運算符的左結合性,先計算k==j,該式不成立,其值為0,再計算0==i+5,也不成立,故表達式值為0。