C#中38個常用運算符的優(yōu)先級的劃分和理解
更新時間:2012年08月01日 16:34:07 作者:
這只我自己在學(xué)C#中的一些總結(jié),其中對于各級的劃分方式、各操作符的優(yōu)先級的理解并不見得正確,只是自己的看法,拿出來與大家分享
在C#中,一共有38個常用的運用符,根據(jù)它們所執(zhí)行運算的特點和它們的優(yōu)先級,為了便于記憶,我將它們歸為七個等級:1、單元運算符和括號。2、常規(guī)算術(shù)運算符。3、位移運算符。4、比較運算符。5、邏輯運算符。6、各種賦值運算符。7、右位(后綴)單元運算符。
1、在這一級中,有++、--(做為前綴)、()、+、-(做為單元運算符)、!、~。這一級中都是單元運算符,除了其中那一對特殊的具有改變?nèi)魏芜\算優(yōu)先級的括號。這此可以看出,在定義表達(dá)式中,那些單元運算符的優(yōu)先級是很高的,可能是因為它們都直接作用于操作數(shù)吧。只有兩個單元運算符的優(yōu)先級不在第一級中,它們因為特殊的原因出現(xiàn)在了后面。
2、在常規(guī)算術(shù)運算符中,有我們經(jīng)常使用的*、/、%、+、-,因為他們使用得較多,所以也排在較高的位置。
3、這一級是兩個特殊的位操作符,<< 和 >>,它們是所有二元操作符中除常規(guī)運算符外優(yōu)先級最高的了,可能是因為與比較運算符、邏輯運算符比起來,這一組操作符進(jìn)行的還是數(shù)值的計算。
4、比較運算符,包括<、>、<=、>=、==、!=,一共六個,這里有一個特點,就小于優(yōu)先于大于。
5、邏輯運算符,邏輯運算符原本有四種,但用于單元的“非”運算符排在了前面,所以這里面就只有&、^、|,再加上兩個補(bǔ)充的用于提高代碼效率的運算符&&、||,共有五個。
6、賦值運算符,這一級最多,幾乎前面出現(xiàn)過的二元運算符,在這里加上個“=”號就成為一個賦值運算符。首先當(dāng)然最基本的賦值運算符“=”;然后是常規(guī)算術(shù)運算符演變來的“*=、/=、%=、+=、-=”,它們的順序和常規(guī)算術(shù)符的順序一樣;然后是位移運算符和邏輯運算符,也按它們演變前的順序排列,為“<<=、>>=、&=、^=、|=”。因為比較運算符所產(chǎn)生的結(jié)果的數(shù)據(jù)類型和它的運算數(shù)的數(shù)據(jù)類型不同,所以它們沒有相應(yīng)的賦值運算符。
7、最后一級,就是那兩個最后的單元運算符后綴版的++、--。它們的出現(xiàn)就是為了做為那兩個前綴版的==、--的補(bǔ)充(那兩個的優(yōu)先級太高了,人們需要兩個優(yōu)先級不那么高的),以方便設(shè)計表達(dá)式,所以這兩個的優(yōu)先級當(dāng)然要排在最后了。
那么,這38個操作符的優(yōu)先級順序就可以寫成如下了:(無論是橫向還是豎向,越靠前優(yōu)先級越高)
第一級:++、--(做為前綴)、()、+、-(做為單元運算符時)、!、~。
第二級:*、/、%、+、-。
第三級:<<、>>。
第四級:<、>、<=、>=、==、!=。
第五級:&、^、|、&&、||。
第六級:=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=。
第七級:++、--(做為后綴)。
這只我自己在學(xué)C#中的一些總結(jié),其中對于各級的劃分方式、各操作符的優(yōu)先級的理解并不見得正確,只是自己的看法,拿出來與大家分享。
1、在這一級中,有++、--(做為前綴)、()、+、-(做為單元運算符)、!、~。這一級中都是單元運算符,除了其中那一對特殊的具有改變?nèi)魏芜\算優(yōu)先級的括號。這此可以看出,在定義表達(dá)式中,那些單元運算符的優(yōu)先級是很高的,可能是因為它們都直接作用于操作數(shù)吧。只有兩個單元運算符的優(yōu)先級不在第一級中,它們因為特殊的原因出現(xiàn)在了后面。
2、在常規(guī)算術(shù)運算符中,有我們經(jīng)常使用的*、/、%、+、-,因為他們使用得較多,所以也排在較高的位置。
3、這一級是兩個特殊的位操作符,<< 和 >>,它們是所有二元操作符中除常規(guī)運算符外優(yōu)先級最高的了,可能是因為與比較運算符、邏輯運算符比起來,這一組操作符進(jìn)行的還是數(shù)值的計算。
4、比較運算符,包括<、>、<=、>=、==、!=,一共六個,這里有一個特點,就小于優(yōu)先于大于。
5、邏輯運算符,邏輯運算符原本有四種,但用于單元的“非”運算符排在了前面,所以這里面就只有&、^、|,再加上兩個補(bǔ)充的用于提高代碼效率的運算符&&、||,共有五個。
6、賦值運算符,這一級最多,幾乎前面出現(xiàn)過的二元運算符,在這里加上個“=”號就成為一個賦值運算符。首先當(dāng)然最基本的賦值運算符“=”;然后是常規(guī)算術(shù)運算符演變來的“*=、/=、%=、+=、-=”,它們的順序和常規(guī)算術(shù)符的順序一樣;然后是位移運算符和邏輯運算符,也按它們演變前的順序排列,為“<<=、>>=、&=、^=、|=”。因為比較運算符所產(chǎn)生的結(jié)果的數(shù)據(jù)類型和它的運算數(shù)的數(shù)據(jù)類型不同,所以它們沒有相應(yīng)的賦值運算符。
7、最后一級,就是那兩個最后的單元運算符后綴版的++、--。它們的出現(xiàn)就是為了做為那兩個前綴版的==、--的補(bǔ)充(那兩個的優(yōu)先級太高了,人們需要兩個優(yōu)先級不那么高的),以方便設(shè)計表達(dá)式,所以這兩個的優(yōu)先級當(dāng)然要排在最后了。
那么,這38個操作符的優(yōu)先級順序就可以寫成如下了:(無論是橫向還是豎向,越靠前優(yōu)先級越高)
第一級:++、--(做為前綴)、()、+、-(做為單元運算符時)、!、~。
第二級:*、/、%、+、-。
第三級:<<、>>。
第四級:<、>、<=、>=、==、!=。
第五級:&、^、|、&&、||。
第六級:=、*=、/=、%=、+=、-=、<<=、>>=、&=、^=、|=。
第七級:++、--(做為后綴)。
這只我自己在學(xué)C#中的一些總結(jié),其中對于各級的劃分方式、各操作符的優(yōu)先級的理解并不見得正確,只是自己的看法,拿出來與大家分享。
您可能感興趣的文章:
相關(guān)文章
WPF仿Tabcontrol實現(xiàn)切換多個不同View
這篇文章主要為大家詳細(xì)介紹了WPF如何模仿Tabcontrol實現(xiàn)切換多個不同View,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
WPF利用DrawingContext實現(xiàn)繪制溫度計
這篇文章主要為大家詳細(xì)介紹了如何利用WPF和DrawingContext實現(xiàn)繪制溫度計,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下2022-09-09

