C語(yǔ)言關(guān)系運(yùn)算符實(shí)例詳解
在程序中經(jīng)常需要比較兩個(gè)數(shù)據(jù)的大小,以決定程序下一步的工作。比如一個(gè)程序限制了只能成年人使用,兒童因?yàn)槟挲g不夠,沒有權(quán)限使用。這時(shí)候程序就需要獲取用戶輸入的年齡并做出判斷,如果超過18歲就正常運(yùn)行,否則給出無(wú)權(quán)使用的提示。
比較兩個(gè)數(shù)據(jù)大小的運(yùn)算符稱為關(guān)系運(yùn)算符(Relational Operators)。
在C語(yǔ)言中有以下關(guān)系運(yùn)算符:
1) <(小于)
2) <=(小于或等于)
3) >(大于)
4) >=(大于或等于)
5) ==(等于)
6) !=(不等于)
關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性均為左結(jié)合。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。在六個(gè)關(guān)系運(yùn)算符中,<、<=、>、>=的優(yōu)先級(jí)相同,高于==和!=,==和!=的優(yōu)先級(jí)相同。
在C語(yǔ)言中,有的運(yùn)算符有兩個(gè)操作數(shù),例如 10+20,10和20都是操作數(shù),+ 是運(yùn)算符。我們將這樣的運(yùn)算符稱為雙目運(yùn)算符。同理,將有一個(gè)操作數(shù)的運(yùn)算符稱為單目運(yùn)算符,將有三個(gè)操作數(shù)的運(yùn)算符稱為三目運(yùn)算符。
常見的雙目運(yùn)算符有 +、-、*、/ 等,單目運(yùn)算符有 ++、-- 等,三目運(yùn)算符只有一個(gè),就是 ? :,我們將在《C語(yǔ)言條件運(yùn)算符》中詳細(xì)介紹。
關(guān)系運(yùn)算符的兩邊可以是變量、數(shù)據(jù)或表達(dá)式,例如:
1) a+b>c-d
2) x>3/2
3) 'a'+1<c
4) -i-5*j==k+1
關(guān)系運(yùn)算符也可以嵌套使用,例如:
1) a>(b>c)
2) a!=(c==d)
關(guān)系運(yùn)算符的運(yùn)算結(jié)果只有 0 或 1。當(dāng)條件成立時(shí)結(jié)果為 1,條件不成立結(jié)果為 0。例如:
5>0 成立,其值為 1;
34-12>100 不成立,其值為 0;
(a=3)>(b=5) 由于3>5不成立,故其值為 0。
我們將運(yùn)算結(jié)果 1 稱為“真”,表示條件成立,將 0 稱為“假”,表示條件不成立。
我們不妨將關(guān)系運(yùn)算符的結(jié)果輸出看一下:
#include <stdio.h>
int main(){
char c='k';
int i=1, j=2, k=3;
float x=3e+5, y=0.85;
int result_1 = 'a'+5<c, result_2 = x-5.25<=x+y;
printf( "%d, %d\n", result_1, -i-2*j>=k+1 );
printf( "%d, %d\n", 1<j<5, result_2 );
printf( "%d, %d\n", i+j+k==-2*j, k==j==i+5 );
return 0;
}
運(yùn)行結(jié)果:
1, 0
1, 1
0, 0
對(duì)于含多個(gè)關(guān)系運(yùn)算符的表達(dá)式,如 k==j==i+5,根據(jù)運(yùn)算符的左結(jié)合性,先計(jì)算k==j,該式不成立,其值為0,再計(jì)算0==i+5,也不成立,故表達(dá)式值為0。
以上就是對(duì)關(guān)系運(yùn)算符的介紹,希望能幫助學(xué)習(xí)C語(yǔ)言的同學(xué)。
相關(guān)文章
c++連續(xù)輸入未知個(gè)數(shù)的數(shù)字操作
這篇文章主要介紹了c++連續(xù)輸入未知個(gè)數(shù)的數(shù)字操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12
在輸入輸出字符串時(shí)scanf(),printf()和gets(),puts()的區(qū)別淺談
在輸入輸出字符串時(shí)scanf(),printf()和gets(),puts()的區(qū)別淺談,需要的朋友可以參考一下2013-02-02
C語(yǔ)言實(shí)現(xiàn)斐波那契數(shù)列(非遞歸)的實(shí)例講解
下面小編就為大家?guī)硪黄狢語(yǔ)言實(shí)現(xiàn)斐波那契數(shù)列(非遞歸)的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
C++利用函數(shù)動(dòng)態(tài)創(chuàng)建二維數(shù)組
這篇文章主要為大家詳細(xì)介紹了C++利用函數(shù)動(dòng)態(tài)創(chuàng)建二維數(shù)組,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
使用OpenCV實(shí)現(xiàn)檢測(cè)和追蹤車輛
這篇文章主要為大家詳細(xì)介紹了使用OpenCV實(shí)現(xiàn)檢測(cè)和追蹤車輛,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
關(guān)于c語(yǔ)言中回調(diào)函數(shù)的理解
這篇文章主要給大家介紹了關(guān)于c語(yǔ)言中回調(diào)函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
C/C++實(shí)現(xiàn)捕獲所有信號(hào)的示例詳解
Linux的信號(hào)機(jī)制大部分情況下用不到,但是由于大部分信號(hào)的默認(rèn)處理是終止進(jìn)程,不正確處理會(huì)惹麻煩,所以我們來看看如何使用C/C++實(shí)現(xiàn)捕獲所有信號(hào)吧2024-03-03
一文帶你掌握C++中的移動(dòng)語(yǔ)義和完美轉(zhuǎn)發(fā)
這篇文章主要為大家詳細(xì)介紹了C++中的移動(dòng)語(yǔ)義和完美轉(zhuǎn)發(fā)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們深入掌握C++有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
C語(yǔ)言大小端字節(jié)序存儲(chǔ)模式深入解讀
我們知道,當(dāng)編譯器執(zhí)行 “創(chuàng)建變量” 這一代碼時(shí),會(huì)在內(nèi)存中開辟空間相應(yīng)的空間來存儲(chǔ)變量值。而對(duì)于整型變量而言,變量值又是以二進(jìn)制補(bǔ)碼的形式存放的2022-09-09

