已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言運(yùn)算符大全C語(yǔ)言的內(nèi)部運(yùn)算符很豐富,運(yùn)算符是告訴編譯程序執(zhí)行特定算術(shù)或邏輯操作的符號(hào)。C語(yǔ)言有三大運(yùn)算符:算術(shù)、關(guān)系與邏輯、位操作。另外,C還有一些特殊的運(yùn)算符,用于完成一些特殊的任務(wù)。2.6.1算術(shù)運(yùn)算符表2-5列出了C語(yǔ)言中允許的算術(shù)運(yùn)算符。在C語(yǔ)言中,運(yùn)算符“+”、“”、“*”和“/”的用法與大多數(shù)計(jì)算機(jī)語(yǔ)言的相同,幾乎可用于所有C語(yǔ)言內(nèi)定義的數(shù)據(jù)類型。當(dāng)“/”被用于整數(shù)或字符時(shí),結(jié)果取整。例如,在整數(shù)除法中,10/3=3。一元減法的實(shí)際效果等于用-1乘單個(gè)操作數(shù),即任何數(shù)值前放置減號(hào)將改變其符號(hào)。模運(yùn)算符“%”在C語(yǔ)言中也同它在其它語(yǔ)言中的用法相同。切記,模運(yùn)算取整數(shù)除法的余數(shù),所以“%”不能用于float和double類型。 最后一行打印一個(gè)0和一個(gè)1,因?yàn)?/2整除時(shí)為0,余數(shù)為1,故1%2取余數(shù)1。2.6.2自增和自減C語(yǔ)言中有兩個(gè)很有用的運(yùn)算符,通常在其它計(jì)算機(jī)語(yǔ)言中是找不到它們的自增和自減運(yùn)算符,+和-。運(yùn)算符“+”是操作數(shù)加1,而“-”是操作數(shù)減1,換句話說(shuō):x=x+1;同+x;x=x-1;同-x;自增和自減運(yùn)算符可用在操作數(shù)之前,也可放在其后,例如:x=x+1;可寫(xiě)成+x;或x+;但在表達(dá)式中這兩種用法是有區(qū)別的。自增或自減運(yùn)算符在操作數(shù)之前,C語(yǔ)言在引用操作數(shù)之前就先執(zhí)行加1或減1操作;運(yùn)算符在操作數(shù)之后,C語(yǔ)言就先引用操作數(shù)的值,而后再進(jìn)行加1或減1操作。請(qǐng)看下例:x=10;y=+x;此時(shí),y=11。如果程序改為:x=10;y=x+;則y=10。在這兩種情況下,x都被置為11,但區(qū)別在于設(shè)置的時(shí)刻,這種對(duì)自增和自減發(fā)生時(shí)刻的控制是非常有用的。在大多數(shù)C編譯程序中,為自增和自減操作生成的程序代碼比等價(jià)的賦值語(yǔ)句生成的代碼要快得多,所以盡可能采用加1或減1運(yùn)算符是一種好的選擇。下面是算術(shù)運(yùn)算符的優(yōu)先級(jí):最高+、-(一元減)*、/、%最低+、-編譯程序?qū)ν?jí)運(yùn)算符按從左到右的順序進(jìn)行計(jì)算。當(dāng)然,括號(hào)可改變計(jì)算順序。C語(yǔ)言處理括號(hào)的方法與幾乎所有的計(jì)算機(jī)語(yǔ)言相同:強(qiáng)迫某個(gè)運(yùn)算或某組運(yùn)算的優(yōu)先級(jí)升高。2.6.3關(guān)系和邏輯運(yùn)算符關(guān)系運(yùn)算符中的“關(guān)系”二字指的是一個(gè)值與另一個(gè)值之間的關(guān)系,邏輯運(yùn)算符中的“邏輯”二字指的是連接關(guān)系的方式。因?yàn)殛P(guān)系和邏輯運(yùn)算符常在一起使用,所以將它們放在一起討論。關(guān)系和邏輯運(yùn)算符概念中的關(guān)鍵是True(真)和Flase(假)。C語(yǔ)言中,非0為T(mén)rue,0為Flase。使用關(guān)系或邏輯運(yùn)算符的表達(dá)式對(duì)Flase和Ture分別返回值0或1(見(jiàn)表2-6)。 表2-6給出于關(guān)系和邏輯運(yùn)算符,下面用1和0給出邏輯真值表。關(guān)系和邏輯運(yùn)算符的優(yōu)先級(jí)比算術(shù)運(yùn)算符低,即像表達(dá)式101+12的計(jì)算可以假定是對(duì)表達(dá)式10(1+12)的計(jì)算,當(dāng)然,該表達(dá)式的結(jié)果為Flase。在一個(gè)表達(dá)式中允許運(yùn)算的組合。例如:105&!(109)|3= 10);2.6.4位操作符與其它語(yǔ)言不同,C語(yǔ)言支持全部的位操作符(BitwiseOperators)。因?yàn)镃語(yǔ)言的設(shè)計(jì)目的是取代匯編語(yǔ)言,所以它必須支持匯編語(yǔ)言所具有的運(yùn)算能力。位操作是對(duì)字節(jié)或字中的位(bit)進(jìn)行測(cè)試、置位或移位處理,這里字節(jié)或字是針對(duì)C標(biāo)準(zhǔn)中的char和int數(shù)據(jù)類型而言的。位操作不能用于float、double、longdouble、void或其它復(fù)雜類型。表2-7給出了位操作的操作符。位操作中的AND、OR和NOT(1的補(bǔ)碼)的真值表與邏輯運(yùn)算等價(jià),唯一不同的是位操作是逐位進(jìn)行運(yùn)算的。 如表2-8所示,當(dāng)且僅當(dāng)一個(gè)操作數(shù)為T(mén)rue時(shí),異或的輸出為T(mén)rue,否則為Flase。位操作通常用于設(shè)備驅(qū)動(dòng)程序,例如調(diào)制解調(diào)器程序、磁盤(pán)文件管理程序和打印機(jī)驅(qū)動(dòng)程序。這是因?yàn)槲徊僮骺善帘蔚裟承┪?,如奇偶校?yàn)位(奇偶校驗(yàn)位用于確保字節(jié)中的其它位不會(huì)發(fā)生錯(cuò)誤通常奇偶校驗(yàn)位是字節(jié)的最高位)。通常我們可把位操作AND作為關(guān)閉位的手段,這就是說(shuō)兩個(gè)操作數(shù)中任一為0的位,其結(jié)果中對(duì)應(yīng)位置為0。例如,下面的函數(shù)通過(guò)調(diào)用函數(shù)read_modem(),從調(diào)制解調(diào)器端口讀入一個(gè)字符,并將奇偶校驗(yàn)位置成0。 字節(jié)的位8是奇偶位,將該字節(jié)與一個(gè)位1到位7為1、位8為0的字節(jié)進(jìn)行與操作,可將該字節(jié)的奇偶校驗(yàn)位置成0。表達(dá)式ch&127正是將ch中每一位同127數(shù)字的對(duì)應(yīng)位進(jìn)行與操作,結(jié)果ch的位8被置成了0。在下面的例子中,假定ch接收到字符A并且奇偶位已經(jīng)被置位。 一般來(lái)說(shuō),位的AND、OR和XOR操作通過(guò)對(duì)操作數(shù)運(yùn)算,直接對(duì)結(jié)果變量的每一位分別處理。正是因?yàn)檫@一原因(還有其它一些原因),位操作通常不像關(guān)系和邏輯運(yùn)算符那樣用在條件語(yǔ)句中,我們可以用例子說(shuō)明這一點(diǎn):假定X=7,那么x&8為T(mén)ure(1),而x&8卻為Flase(0)。記住,關(guān)系和邏輯操作符結(jié)果不是0就是1。而相似的位操作通過(guò)相應(yīng)處理,結(jié)果可為任意值。換言之,位操作可以有0或1以外的其它值,而邏輯運(yùn)算符的計(jì)算結(jié)果總是0或1。移位操作符和右移位數(shù)左移語(yǔ)句是:variable左移位數(shù)當(dāng)某位從一端移出時(shí),另一端移入0(某些計(jì)算機(jī)是送1,詳細(xì)內(nèi)容請(qǐng)查閱相應(yīng)C編譯程序用戶手冊(cè))。切記:移位不同于循環(huán),從一端移出的位并不送回到另一端去,移去的位永遠(yuǎn)丟失了,同時(shí)在另一端補(bǔ)0。移位操作可對(duì)外部設(shè)備(如D/A轉(zhuǎn)換器)的輸入和狀態(tài)信息進(jìn)行譯碼,移位操作還可用于整數(shù)的快速乘除運(yùn)算。如表2-9所示(假定移位時(shí)補(bǔ)0),左移一位等效于乘2,而右移一位等效于除以2。 每左移一位乘2,注意x9?100:200;例中,賦給y的數(shù)值是100,如果x被賦給比9小的值,y的值將為200,若用if-else語(yǔ)句改寫(xiě),有下面的等價(jià)程序:x=10;if(x9)y=100;elsey=200;有關(guān)C語(yǔ)言中的其它條件語(yǔ)句將在第3章進(jìn)行討論。2.6.6 逗號(hào)操作符作為一個(gè)操作符,逗號(hào)把幾個(gè)表達(dá)式串在一起。逗號(hào)操作符的左側(cè)總是作為void(無(wú)值),這意味著其右邊表達(dá)式的值變?yōu)橐远禾?hào)分開(kāi)的整個(gè)表達(dá)式的值。例如:x=(y=3,y+1);這行將3賦給y,然后將4賦給x,因?yàn)槎禾?hào)操作符的優(yōu)先級(jí)比賦值操作符優(yōu)先級(jí)低,所以必須使用括號(hào)。實(shí)際上,逗號(hào)表示操作順序。當(dāng)它在賦值語(yǔ)句右邊使用時(shí),所賦的值是逗號(hào)分隔開(kāi)的表中最后那個(gè)表達(dá)式的值。例如,y=10;x=(y=y-5,25/y);執(zhí)行后,x的值是5,因?yàn)閥的起始值是10,減去5之后結(jié)果再除以25,得到最終結(jié)果。在某種意義上可以認(rèn)為,逗號(hào)操作符和標(biāo)準(zhǔn)英語(yǔ)的and是同義詞。2.6.7關(guān)于優(yōu)先級(jí)的小結(jié)表2-10列出了C語(yǔ)言所有操作符的優(yōu)先級(jí),其中包括將在本書(shū)后面討論的某些操作符。注意,所有操作符(除一元操作符和?之外)都是左結(jié)合的。一元操作符(*,&和-)及操作符“?”則為右結(jié)合。 ?C語(yǔ)言運(yùn)算符大全C語(yǔ)言共有34個(gè)運(yùn)算符,今天閑來(lái)沒(méi)事就找了一下,現(xiàn)在拿出來(lái)分享一下呵:按優(yōu)先級(jí)排序,空行表示優(yōu)先級(jí)下降,01為最高,最先算 1431均為雙目,左結(jié)合 () 01圓括號(hào) 02下標(biāo) - 03指針型結(jié)構(gòu)成員 . 04結(jié)構(gòu)成員 ! 05邏輯非 06位非 + 07自增 - 08自減 - 09取負(fù) (類型) 10類型轉(zhuǎn)換 * 11取內(nèi)容 & 12取地址 sizeof 13求字節(jié) 此級(jí)(513)均為單目運(yùn)算,且都為右結(jié)合 * 14乘 / 15除 % 16求余 + 17加 - 18減 20右移 21小于 23大于 = 24大于等于 = 25等于 != 26不等于 & 27位與 28位異或 | 29位或 & 30與 | 31或 ?: 32條件運(yùn)算 此級(jí)(32)為三目運(yùn)算,右結(jié)合 = 33賦值運(yùn)算 另有10個(gè)擴(kuò)展符+=,-=,*=,/=,%=,=, .括號(hào)(函數(shù)等),數(shù)組,兩種結(jié)構(gòu)成員訪問(wèn)由左向右! + - + - * & (類型) sizeof否定,按位否定,增量,減量,正負(fù)號(hào), 間接,取地址,類型轉(zhuǎn)換,求大小由右向左* / %乘,除,取模由左向右+ -加,減由左向右左移,右移由左向右 = 小于,小于等于,大于等于,大于由左向右= !=等于,不等于由左向右&按位與由左向右按位異或由左向右|按位或由左向右&邏輯與由左向右|邏輯或由左向右? :條件由右向左= += -= *= /= &= = |= =各種賦值由右向左,逗號(hào)(順序)由左向右上面給出的是其運(yùn)算符,下面給出32個(gè)關(guān)鍵字及其含義:auto :聲明自動(dòng)變量 一般不使用 double :聲明雙精度變量或函數(shù) int: 聲明整型變量或函數(shù) struct:聲明結(jié)構(gòu)體變量或函數(shù) break:跳出當(dāng)前循環(huán) else :條件語(yǔ)句否定分支(與 if 連用) long :聲明長(zhǎng)整型變量或函數(shù) switch :用于開(kāi)關(guān)語(yǔ)句 case:開(kāi)關(guān)語(yǔ)句分支 enum :聲明枚舉類型 register:聲明積存器變量 typedef:用以給數(shù)據(jù)類型取別名(當(dāng)然還有其他作用) char :聲明字符型變量或函數(shù) extern:聲明變量是在其他文件正聲明(也可以看做是引用變量) return :子程序返回語(yǔ)句(可以帶參數(shù),也看不帶參數(shù)) union:聲明聯(lián)合數(shù)據(jù)類型 const :聲明只讀變量 float:聲明浮點(diǎn)型變量或函數(shù) short :聲明短整型變量或函數(shù) unsigned:聲明無(wú)符號(hào)類型變量或函數(shù) continue:結(jié)束當(dāng)前循環(huán),開(kāi)始下一輪循環(huán) for:一種循環(huán)語(yǔ)句(可意會(huì)不可言傳) signed:生命有符號(hào)類型變量或函數(shù) void :聲明函數(shù)無(wú)返回值或無(wú)參數(shù),聲明無(wú)類型指針(基本上就這三個(gè)作用) default:開(kāi)關(guān)語(yǔ)句中的“其他”分支 goto:無(wú)條件跳轉(zhuǎn)語(yǔ)句 sizeof:計(jì)算數(shù)據(jù)類型長(zhǎng)度 volatile:說(shuō)明變量在程序執(zhí)行中可被隱含地改變 do :循環(huán)語(yǔ)句的循環(huán)體 while :循環(huán)語(yǔ)句的循環(huán)條件 static :聲明靜態(tài)變量 if:條件語(yǔ)句?C語(yǔ)言運(yùn)算符分類1級(jí)優(yōu)先級(jí)(左結(jié)合) () 圓括號(hào);下標(biāo)運(yùn)算符;-指向結(jié)構(gòu)體成員運(yùn)算符;. 結(jié)構(gòu)體成員運(yùn)算符。 2級(jí)優(yōu)先級(jí)(右結(jié)合) !邏輯非運(yùn)算符;按位取反運(yùn)算符;+前綴增量運(yùn)算符;-前綴減量運(yùn)算符;+正號(hào)運(yùn)算符;-負(fù)號(hào)運(yùn)算符;(類型)類型轉(zhuǎn)換運(yùn)算符;*指針運(yùn)算符;&地址運(yùn)算符;sizeof長(zhǎng)度運(yùn)算符。 3級(jí)優(yōu)先級(jí)(左結(jié)合) *乘法運(yùn)算符;/除法運(yùn)算符;%取余運(yùn)算符。 4級(jí)優(yōu)先級(jí)(左結(jié)合) +加法運(yùn)算符;-減法運(yùn)算符。 5級(jí)優(yōu)先級(jí)(左結(jié)合) 右移運(yùn)算符。 6級(jí)優(yōu)先級(jí)(左結(jié)合) 、=關(guān)系運(yùn)算符。 7級(jí)優(yōu)先級(jí)(左結(jié)合) =等于運(yùn)算符;!=不等于運(yùn)算符。 8級(jí)優(yōu)先級(jí)(左結(jié)合) &按位與運(yùn)算符。 9級(jí)優(yōu)先級(jí)(左結(jié)合) 按位異或運(yùn)算符。 10級(jí)優(yōu)先級(jí)(左結(jié)合) |按位或運(yùn)算符。 11級(jí)優(yōu)先級(jí)(左結(jié)合) &邏輯與運(yùn)算符。 12級(jí)優(yōu)先級(jí)(左結(jié)合) |邏輯或運(yùn)算符。 13級(jí)優(yōu)先級(jí)(右結(jié)合) ? :條件運(yùn)算符。 14級(jí)優(yōu)先級(jí)(右結(jié)合) =、 +=、 -=、 *=、 /=、 %=、 &=、 =、 |=、 =賦值運(yùn)算符。 15級(jí)優(yōu)先級(jí)(左結(jié)合) ,逗號(hào)運(yùn)算符。 運(yùn)算符優(yōu)先級(jí)優(yōu)先級(jí)從上到下依次遞減,最上面具有最高的優(yōu)先級(jí),逗號(hào)操作符具有最低的優(yōu)先級(jí)。 所有的優(yōu)先級(jí)中,只有三個(gè)優(yōu)先級(jí)是從右至左結(jié)合的,它們是單目運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符。其它的都是從左至右結(jié)合。 具有最高優(yōu)先級(jí)的其實(shí)并不算是真正的運(yùn)算符,它們算是一類特殊的操作。()是與函數(shù)相關(guān),與數(shù)組相關(guān),而及.是取結(jié)構(gòu)成員。 其次是單目運(yùn)算符,所有的單目運(yùn)算符具有相同的優(yōu)先級(jí),因此在我認(rèn)為的 真正的運(yùn)算符中它們具有最高的優(yōu)先級(jí),又由于它們都是從右至左結(jié)合的,因此*p+與*(p+)等效是毫無(wú)疑問(wèn)的。 另外在C語(yǔ)言里 沒(méi)有前置后置之分 因?yàn)? - 是右結(jié)合所以 右側(cè)優(yōu)先運(yùn)算 表現(xiàn)為 操作數(shù)后置優(yōu)先級(jí)比較高 的假象 前置和后置的區(qū)分是因?yàn)檫\(yùn)算符重載而后加入C+的 接下來(lái)是算術(shù)運(yùn)算符,*、/、%的優(yōu)先級(jí)當(dāng)然比+、高了。 移位運(yùn)算符緊隨其后。 其次的關(guān)系運(yùn)算符中, =要比 = !=高一個(gè)級(jí)別,不大好理解。 所有的邏輯操作符都具有不同的優(yōu)先級(jí)(單目運(yùn)算符出外,!和) 邏輯位操作符的與比或高,而異或則在它們之間。 跟在其后的&比|高。 接下來(lái)的是條件運(yùn)算符,賦值運(yùn)算符及逗號(hào)運(yùn)算符。 在C語(yǔ)言中,只有4個(gè)運(yùn)算符規(guī)定了運(yùn)算方向,它們是&、| |、條件運(yùn)算符及賦值運(yùn)算符。 &、| |都是先計(jì)算左邊表達(dá)式的值,當(dāng)左邊表達(dá)式的值能確定整個(gè)表達(dá)式的值時(shí),就不再計(jì)算右邊表達(dá)式的值。如 a = 0 & b; &運(yùn)算符的左邊位0,則右邊表達(dá)式b就不再判斷。 在條件運(yùn)算符中。如a?b:c;先判斷a的值,再根據(jù)a的值對(duì)b或c之中的一個(gè)進(jìn)行求值。 賦值表達(dá)式則規(guī)定先對(duì)右邊的表達(dá)式求值,因此使 a = b = c = 6;成為可能。 運(yùn)算符優(yōu)先級(jí)等級(jí)口訣及注釋運(yùn)算符優(yōu)先級(jí)等級(jí)口訣圓方括號(hào)、箭頭一句號(hào), 自增自減非反負(fù)、針強(qiáng)地址長(zhǎng)度, 乘除,加減,再移位, 小等大等、等等不等, 八位與,七位異,六位或,五與,四或,三疑,二賦,一真逗。 其中“,”號(hào)為一個(gè)等級(jí)分段。 運(yùn)算符優(yōu)先級(jí)等級(jí)注釋“圓方括號(hào)、箭頭一句號(hào)”指的是第15級(jí)的運(yùn)算符。其中圓方括號(hào)很明顯“()、”,箭頭 指的是指向結(jié)構(gòu)體成員運(yùn)算符“-”,句號(hào) 指的是結(jié)構(gòu)體成員運(yùn)算符“.” ; “自增自減非反負(fù)、針強(qiáng)地址長(zhǎng)度”指的是第14級(jí)的運(yùn)算符。其中 非 指的是邏輯
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度寵物用品銷售及養(yǎng)護(hù)服務(wù)外包協(xié)議4篇
- 2025年度廠房租賃合同配套基礎(chǔ)設(shè)施完善協(xié)議4篇
- 旅游部門(mén)半年回顧
- 專用借款協(xié)議:2024年版詳盡協(xié)議版A版
- 2025年度智能家居產(chǎn)品定制生產(chǎn)合同范本4篇
- 二零二四三方國(guó)際貿(mào)易融資借款協(xié)議2篇
- 2025年度拆除項(xiàng)目環(huán)保驗(yàn)收合同模板4篇
- 二手房交易代簽合同范本2024年版版
- 個(gè)性化服務(wù)型酒店房間租賃協(xié)議版A版
- 二零二五版船艇交易環(huán)保與安全協(xié)議3篇
- 施工現(xiàn)場(chǎng)水電費(fèi)協(xié)議
- SH/T 3046-2024 石油化工立式圓筒形鋼制焊接儲(chǔ)罐設(shè)計(jì)規(guī)范(正式版)
- 2024年海口市選調(diào)生考試(行政職業(yè)能力測(cè)驗(yàn))綜合能力測(cè)試題及答案1套
- 六年級(jí)數(shù)學(xué)質(zhì)量分析及改進(jìn)措施
- 一年級(jí)下冊(cè)數(shù)學(xué)口算題卡打印
- 真人cs基于信號(hào)發(fā)射的激光武器設(shè)計(jì)
- 【閱讀提升】部編版語(yǔ)文五年級(jí)下冊(cè)第三單元閱讀要素解析 類文閱讀課外閱讀過(guò)關(guān)(含答案)
- 四年級(jí)上冊(cè)遞等式計(jì)算練習(xí)200題及答案
- 法院后勤部門(mén)述職報(bào)告
- 2024年國(guó)信證券招聘筆試參考題庫(kù)附帶答案詳解
- 道醫(yī)館可行性報(bào)告
評(píng)論
0/150
提交評(píng)論