C語言運算符是什么意思
C語言運算符是什么意思
C語言運算符是做什么用的,他有什么用途?它的意思是是什么?下面是學(xué)習(xí)啦小編給大家整理的C語言運算符是什么意思,供大家參閱!
C語言運算符是什么意思
C語言運算符是說明特定操作的符號 ,它是構(gòu)造C語言表達(dá)式的工具 。C語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算符處理。除了常見的三大類,算術(shù)運算符、關(guān)系運算符與邏輯運算符之外,還有一些用于完成特殊任務(wù)的運算符,比如位運算符。
C語言運算符的優(yōu)先級口訣
圓方括號、箭頭一句號, 自增自減非反負(fù)、針強(qiáng)地址長度,
乘除,加減,再移位,
小等大等、等等不等,
八位與,七位異,六位或,五與,四或,三疑,二賦,一真逗。
其中“,”號為一個等級分段。
C語言運算符的優(yōu)先級
優(yōu)先級:C語言中,運算符的運算優(yōu)先級共分為15 級。1 級最高,15 級最低。 在表達(dá)式中,優(yōu)先級較高的先于優(yōu)先級較低的進(jìn)行運算。而在一個運算量兩側(cè)的運算符 優(yōu)先級相同時,則按運算符的結(jié)合性所規(guī)定的結(jié)合方向處理。
結(jié)合性:C語言中各運算符的結(jié)合性分為兩種,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。例如算術(shù)運算符的結(jié)合性是自左至右,即先左后右。如有表達(dá)式x-y+z 則y 應(yīng)先與“-”號結(jié)合,執(zhí)行x-y 運算,然后再執(zhí)行+z 的運算。這種自左至右的結(jié)合 方向就稱為“左結(jié)合性”。而自右至左的結(jié)合方向稱為“右結(jié)合性”。最典型的右結(jié)合 性運算符是賦值運算符。如x=y=z,由于“=”的右結(jié)合性,應(yīng)先執(zhí)行y=z 再執(zhí)行x=(y=z)運算。C語言運算符中有不少為右結(jié)合性,應(yīng)注意區(qū)別,以避免理解錯誤。
優(yōu)先級從上到下依次遞減,最上面具有最高的優(yōu)先級,逗號操作符具有最低的優(yōu)先級。
所有的優(yōu)先級中,只有三個優(yōu)先級是從右至左結(jié)合的,它們是單目運算符、條件運算符、賦值運算符。其它的都是從左至右結(jié)合。
具有最高優(yōu)先級的其實并不算是真正的運算符,它們算是一類特殊的操作。()是與函數(shù)相關(guān),[]與數(shù)組相關(guān),而->及.是取結(jié)構(gòu)成員。
其次是單目運算符,所有的單目運算符具有相同的優(yōu)先級,因此在我認(rèn)為的 真正的運算符中它們具有最高的優(yōu)先級,又由于它們都是從右至左結(jié)合的,因此*p++與*(p++)等效是毫無疑問的。
另外在C語言里,沒有前置后置之分,因為++ -- 是右結(jié)合所以右側(cè)優(yōu)先運算,表現(xiàn)為 "操作數(shù)后置優(yōu)先級比較高" 的假象,前置和后置的區(qū)分是因為運算符重載而后加入C++的
接下來是算術(shù)運算符,*、/、%的優(yōu)先級當(dāng)然比+、-高了。
移位運算符緊隨其后。
其次的關(guān)系運算符中,< <= > >=要比 == !=高一個級別,不大好理解。
所有的邏輯操作符都具有不同的優(yōu)先級(單目運算符除外,!和~)
邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。
跟在其后的&&比||高。
接下來的是條件運算符,賦值運算符及逗號運算符。
在C語言中,只有4個運算符規(guī)定了運算方向,它們是&&、| |、條件運算符及賦值運算符。
&&、| |都是先計算左邊表達(dá)式的值,當(dāng)左邊表達(dá)式的值能確定整個表達(dá)式的值時,就不再計算右邊表達(dá)式的值。如 a = 0 && b; &&運算符的左邊位0,則右邊表達(dá)式b就不再判斷。
在條件運算符中。如a?b:c;先判斷a的值,再根據(jù)a的值對b或c之中的一個進(jìn)行求值。
賦值表達(dá)式則規(guī)定先對右邊的表達(dá)式求值,因此使 a = b = c = 6;成為可能。
看過C語言運算符是什么意思的人還看了: