第2章 基本數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式_第1頁(yè)
第2章 基本數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式_第2頁(yè)
第2章 基本數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式_第3頁(yè)
第2章 基本數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式_第4頁(yè)
第2章 基本數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二章

數(shù)據(jù)類(lèi)型和表達(dá)式詞法符號(hào)基本數(shù)據(jù)類(lèi)型常量與變量運(yùn)算符和表達(dá)式案例實(shí)戰(zhàn)2.1詞法符號(hào)計(jì)算機(jī)與信息科學(xué)學(xué)院楊衛(wèi)明2.1.1C++字符集

C++字符集是由下列字符組成的(ASCII碼字符集)26個(gè)小寫(xiě)字母:a~z26個(gè)大寫(xiě)字母:A~Z

10個(gè)數(shù)字:0~9其它符號(hào):+-*/=,._:;?\"'~|!

#%&(){}[]^<>空格

每種程序設(shè)計(jì)語(yǔ)言都使用一組字符來(lái)構(gòu)造具有特殊意義的符號(hào)----詞法符號(hào)C++語(yǔ)言中的種詞法符號(hào)有標(biāo)識(shí)符、關(guān)鍵字、運(yùn)算符、分隔符等2.1.1C++字符集

ASCII碼字符對(duì)照表規(guī)律:‘a(chǎn)’--97‘A’--65

往后字符ASCII碼依次增加1。小寫(xiě)比大寫(xiě)大32?!?’---48,‘1’--49

數(shù)字字符往后ASCII碼值依次增加1.控制字符<數(shù)字字符<大寫(xiě)字母<小寫(xiě)字母2.1.2標(biāo)識(shí)符

C++語(yǔ)言中標(biāo)識(shí)符的命名規(guī)則:⑴標(biāo)識(shí)符是由英文字母(包括大寫(xiě)和小寫(xiě))、數(shù)字和下劃線(xiàn)組成,并且只能以字母和下劃線(xiàn)開(kāi)始,其后跟零個(gè)或多個(gè)字母、數(shù)字或下劃線(xiàn)。⑵標(biāo)識(shí)符中大寫(xiě)和小寫(xiě)字母是有區(qū)別的。⑶標(biāo)識(shí)符的長(zhǎng)度是任意的,有的編譯系統(tǒng)僅識(shí)別前32個(gè)字符。⑷標(biāo)識(shí)符不能和C++語(yǔ)言的關(guān)鍵字同名。標(biāo)識(shí)符是程序員為命名程序中的一些實(shí)體而定義的專(zhuān)用單詞。2.1.3關(guān)鍵字

關(guān)鍵字是一種有特殊用途的詞法符號(hào),是C++系統(tǒng)預(yù)定義的保留字,不能再用作其他用途。(共95個(gè),常用的30個(gè))C++語(yǔ)言中常用的關(guān)鍵字:intfloatdoubleboolstringvoidlongstructclassconstifelseswitchcasedefaultwhiledoforgotobreakcontinuenewdeleteautodefinecatchenumexternfriendinline2.1.4運(yùn)算符

運(yùn)算符是C++語(yǔ)言實(shí)現(xiàn)各種運(yùn)算的符號(hào)。根據(jù)操作對(duì)象個(gè)數(shù)的不同,可分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。單目運(yùn)算符又稱(chēng)一元運(yùn)算符,它只對(duì)一個(gè)操作數(shù)進(jìn)行操作。雙目運(yùn)算符又稱(chēng)二元運(yùn)算符,它可以對(duì)兩個(gè)操作數(shù)進(jìn)行操作。三目運(yùn)算符又稱(chēng)三元運(yùn)算符,它可以對(duì)三個(gè)操作數(shù)進(jìn)行操作。(C++中只有一個(gè)三目運(yùn)算符“?:”,又叫條件運(yùn)算符)運(yùn)算符是有優(yōu)先級(jí)的,通常單目運(yùn)算符優(yōu)先級(jí)最高,接下來(lái)是雙目運(yùn)算符,最后是三目運(yùn)算符。2.1.5分隔符分隔符又稱(chēng)標(biāo)點(diǎn)符號(hào),是用來(lái)分隔單詞或程序正文的。C++語(yǔ)言中,常用分隔符:空格符:常用來(lái)作為單詞與單詞之間的分隔符。逗號(hào):用來(lái)作為多個(gè)變量之間的分隔符,或用來(lái)作為函數(shù)多個(gè)參數(shù)之間的分隔符。分號(hào):用來(lái)作為for循環(huán)語(yǔ)句中for關(guān)鍵字后面括號(hào)中三個(gè)表達(dá)式的分隔符,或用作語(yǔ)句結(jié)束的標(biāo)志。冒號(hào):用來(lái)作為語(yǔ)句標(biāo)號(hào)與語(yǔ)句之間的分隔符,或switch語(yǔ)句中關(guān)鍵字case<整型常量>與語(yǔ)句序列之間的分隔符。2.2基本數(shù)據(jù)類(lèi)型計(jì)算機(jī)與信息科學(xué)學(xué)院楊衛(wèi)明2.2基本數(shù)據(jù)類(lèi)型C++語(yǔ)言的數(shù)據(jù)類(lèi)型可分為基本數(shù)據(jù)類(lèi)型和非基本數(shù)據(jù)類(lèi)型?;緮?shù)據(jù)類(lèi)型包括整型、字符型、浮點(diǎn)型和布爾型。非基本數(shù)據(jù)類(lèi)型主要包括數(shù)組類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體類(lèi)型、指針類(lèi)型和空類(lèi)型等。數(shù)據(jù)類(lèi)型決定了數(shù)據(jù)在內(nèi)存中所占的空間大小,其表示范圍。2.2基本數(shù)據(jù)類(lèi)型2.2基本數(shù)據(jù)類(lèi)型整型,就是數(shù)據(jù)為整數(shù),具體還包括基本整型,關(guān)鍵字為int.短整型,關(guān)鍵字為shortint或者short,長(zhǎng)整型,關(guān)鍵字為:longint或者long.基本整型,短整型,長(zhǎng)整型數(shù)據(jù)在內(nèi)存中所占的存儲(chǔ)空間不一樣,其表示數(shù)的大小范圍不一樣。存儲(chǔ)空間跟機(jī)器字長(zhǎng)有關(guān)系,用所占的字節(jié)數(shù)來(lái)衡量,一個(gè)字節(jié)為8位二進(jìn)制。一般情況下,64位機(jī)器下,短整型字節(jié)數(shù)為2,整型為4,長(zhǎng)整型為4。

整型2.2基本數(shù)據(jù)類(lèi)型整數(shù)還要分有符號(hào)和無(wú)符號(hào)數(shù)。有符號(hào)是指帶符號(hào)的正數(shù)負(fù)數(shù),無(wú)符號(hào)是省略符號(hào)的正數(shù)。整型的有符號(hào)和無(wú)符號(hào)數(shù)的區(qū)別是數(shù)據(jù)在內(nèi)存中的二進(jìn)制存儲(chǔ),第一位為符號(hào)位還是數(shù)值位。整型數(shù)據(jù)有符號(hào)關(guān)鍵字為signed,無(wú)符號(hào)為unsigned,定義整型數(shù)據(jù)類(lèi)型時(shí),省略情況下為有符號(hào)類(lèi)型。例如:inta;表示a是一個(gè)整型變量,里面存放的是一個(gè)有符號(hào)數(shù)整數(shù)。Unsignedinta;表示a是一個(gè)整型變量,里面存放的是一個(gè)無(wú)符號(hào)數(shù)整數(shù)。

整型2.2基本數(shù)據(jù)類(lèi)型字符型關(guān)鍵字為char,存儲(chǔ)ASC碼字符,數(shù)據(jù)在內(nèi)存所占的空間為1個(gè)字節(jié)。字符型數(shù)據(jù)是可以當(dāng)成整形數(shù)據(jù),其對(duì)應(yīng)的整數(shù)值大小為-128-127。

字符型浮點(diǎn)型就是實(shí)型小數(shù),包括單精度型float,雙精度型double。單精度和雙精度數(shù)據(jù)所占的內(nèi)存空間字節(jié)數(shù)不一樣,取值范圍和有效數(shù)字不一樣。64位機(jī)器下,單精度f(wàn)loat型字節(jié)數(shù)為4,雙精度double字節(jié)數(shù)為8。

浮點(diǎn)型C++基本數(shù)據(jù)類(lèi)型的長(zhǎng)度和取值范圍

數(shù)據(jù)類(lèi)型說(shuō)明長(zhǎng)度(字節(jié))取值范圍bool布爾型true,falsechar(signedchar)字符型1-128~127unsignedchar無(wú)符號(hào)字符型10~255short(signedshort)短整型2-32768~32767unsignedshort無(wú)符號(hào)短整型20~65535int(signedint)基本整型4-2147483648~2147483647unsignedint無(wú)符號(hào)整型40~4294967295long(signedlong)長(zhǎng)整型4-2147483648~2147483647unsignedlong無(wú)符號(hào)長(zhǎng)整型40~4294967295float單精度型4-3.4×10-38~3.4×1038double雙精度型8-1.7×10-308~1.7×103082.2基本數(shù)據(jù)類(lèi)型注意:同一種數(shù)據(jù)類(lèi)型在不同的編譯系統(tǒng)中所占空間不一定相同。C++是一種強(qiáng)數(shù)據(jù)類(lèi)型語(yǔ)言,不同的數(shù)據(jù)類(lèi)型運(yùn)算規(guī)則不一樣。求某一數(shù)據(jù)或數(shù)據(jù)類(lèi)型在內(nèi)存中所占的字節(jié)數(shù)。

sizeof(數(shù)據(jù)類(lèi)型名稱(chēng));

sizeof(常量或者變量);

sizeof()運(yùn)算符例如:inta=3;cout<<sizeof(int)<<sizeof(a)<<sizeof(3);2.3常量與變量計(jì)算機(jī)與信息科學(xué)學(xué)院楊衛(wèi)明2.3.1常量常量定義

在程序運(yùn)行過(guò)程中,值不能被改變的量稱(chēng)為常量。常量分類(lèi)整型常量浮點(diǎn)型常量字符常量字符串常量邏輯常量符號(hào)常量2.3.1常量1.整型常量十進(jìn)制整型常量由0~9組成,沒(méi)有前綴,不能以0開(kāi)始。

例如:12,-34,45.7八進(jìn)制整型常量以0為前綴,后跟由0~7組成的整型常數(shù)。例如:0134、-076為合法的八進(jìn)制整型常量。十六進(jìn)制整型常量以0X或0x為前綴,后跟由0~9和A~F(大小寫(xiě)都可以)組成的整型常數(shù)。例如:0x2F、0xA3B4為合法的十六進(jìn)制整型常量。注意:(1)整型常量中的長(zhǎng)整型用L或l作后綴表示;

(2)整型常量中的無(wú)符號(hào)型用U或u作后綴表示。

例如:123l,123u2.3.1常量2.浮點(diǎn)型常量浮點(diǎn)型常量又稱(chēng)實(shí)型常量,是由整數(shù)部分和小數(shù)部分組成的,只能用十進(jìn)制表示。浮點(diǎn)型常量有兩種表示方法:小數(shù)表示法和科學(xué)計(jì)數(shù)法。⑴小數(shù)表示法:是由符號(hào)、數(shù)字和小數(shù)點(diǎn)組成。

例如:9.55、.25等。⑵科學(xué)計(jì)數(shù)法:是用指數(shù)形式來(lái)表示浮點(diǎn)型常量,即在小數(shù)表示法后面加上E或e表示指數(shù)(小數(shù)表示浮點(diǎn)數(shù)的精度,指數(shù)表示數(shù)的大小)。

例如:3.2E-5,7e10,-34.5e2等。注意:(1)小數(shù)表示法必須有小數(shù)點(diǎn);(2)科學(xué)計(jì)數(shù)法,E或者e前面必須有數(shù)字,可以是整數(shù)或小數(shù),整數(shù)可以看成

定點(diǎn)小數(shù),指數(shù)為整數(shù)。2.3.1常量3.字符常量C++中有兩種字符常量,即一般字符常量和轉(zhuǎn)義字符常量。⑴一般字符常量一般字符常量是用一對(duì)單引號(hào)括起來(lái)的一個(gè)字符,其值為ASCII碼值,用整數(shù)表示,存儲(chǔ)占據(jù)一個(gè)字節(jié)。

例如:’a’,ASCII碼值97;’2’,ASCII碼值50。注意:字符常量區(qū)分大小寫(xiě)?!產(chǎn)’與’A’是兩個(gè)不同字符。一個(gè)字符常量只能包含一個(gè)字符。例如,‘a(chǎn)b’錯(cuò)誤的。單引號(hào)是字符常量的定界符,不是字符的一部分,在輸入輸出時(shí)不加單引號(hào)。2.3.1常量3.字符常量C++中有兩種字符常量,即一般字符常量和轉(zhuǎn)義字符常量。⑴一般字符常量⑵轉(zhuǎn)義字符

轉(zhuǎn)義字符是一個(gè)以“\”開(kāi)頭的特定字符,表示其后的字符具有特殊意義。

例如,‘\n’中的n不是代表字符n,而是代表回車(chē)換行。注意:(1)回車(chē)符是回到這一行的開(kāi)頭,換行符是跳到下一行的開(kāi)頭。(2)轉(zhuǎn)義字符代表一個(gè)字符。例如,‘\n’表示換行;’\101’表示’A’。(3)單引號(hào)、反斜杠和雙引號(hào)必須用轉(zhuǎn)義字符表示。因?yàn)閱我?hào)(‘)是字符常量界定符,反斜杠(\)表示轉(zhuǎn)義字符,雙引號(hào)(“)表示字符常量。2.3.1常量3.字符常量⑵常見(jiàn)轉(zhuǎn)義字符

\a:響鈴符\n:換行

\t

:制表符tab鍵

\r

:回車(chē)符

\\

:表示\

\’:表示單引號(hào)

\":表示雙引號(hào)\ddd?1~3位?進(jìn)制數(shù)ddd為碼值所對(duì)應(yīng)的字符(ddd?進(jìn)制)\xhh?1、2位?六進(jìn)制hh為碼符所對(duì)應(yīng)的字符(hh十六進(jìn)制)

\0:表示空字符NULL

注意:轉(zhuǎn)義字符只是代表一個(gè)字符。2.3.1常量4.字符串常量字符串常量是用一對(duì)雙引號(hào)括起來(lái)的字符序列。

例如:“Abrt124\n”,“A”在內(nèi)存中連續(xù)存儲(chǔ),并在最后加上字符'\0'作為字符串結(jié)束的標(biāo)志。字符串的長(zhǎng)度是指字符個(gè)數(shù),存儲(chǔ)空間字節(jié)數(shù)等于長(zhǎng)度加上1?!癆BC”,字符串長(zhǎng)度為3,存儲(chǔ)空間為4.注意:在C++語(yǔ)言中,字符串常量和字符常量是不同的。

例如:"x"和'x'是不同的。不能將一個(gè)字符串常量賦給字符常量。

例如:charc;c=“A”;錯(cuò)誤。2.3.1常量5.布爾型常量布爾型常量只有兩個(gè),即true(真)和false(假),主要用語(yǔ)表示表達(dá)式的計(jì)算結(jié)果。在C++程序設(shè)計(jì)把布爾型常量當(dāng)做整型數(shù)據(jù),將true當(dāng)成1,false當(dāng)成0。在邏輯運(yùn)算中,非0數(shù)據(jù)當(dāng)成true,0當(dāng)成false,即0為假,非0為真。注意:true,false只能是小寫(xiě),不能把true,false寫(xiě)TRUE,FALSE2.3.1常量6.符號(hào)常量指用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常數(shù)。定義符號(hào)常量的兩種方法:⑴用const語(yǔ)句定義符號(hào)常量格式:const數(shù)據(jù)類(lèi)型

符號(hào)常量=表達(dá)式;例如:constdoublePI=3.1415926;注意:在定義符號(hào)常量時(shí)必須進(jìn)行初始化,否則將出現(xiàn)編譯錯(cuò)誤。

在后面的運(yùn)算中不能更改符號(hào)常量的值。2.3.1常量6.符號(hào)常量⑵用#define語(yǔ)句定義符號(hào)常量格式:#define

常量名常量值例如:#definePI3.1415926

注意:(1)#define語(yǔ)句的最后不允許加分號(hào)“;”。(2)#define定義常量屬于預(yù)處理命令,一般放在程序的開(kāi)頭,函數(shù)的外部.(3)符號(hào)常量一般為大寫(xiě),因?yàn)樽兞恳话銥樾?xiě),便于區(qū)分。2.3.2變量1.變量的命名規(guī)則⑴系統(tǒng)使用的關(guān)鍵字不能再作為變量名。⑵第一個(gè)字符必須是字母或下劃線(xiàn),后跟字母、數(shù)字或下劃線(xiàn),中間不能有空格。⑶命名變量應(yīng)盡量做到“見(jiàn)名知意”,這樣有助于記憶,增加可讀性。⑷在命名變量時(shí),大小寫(xiě)字母是不一樣的,習(xí)慣上用小寫(xiě)字母命名變量。變量是指在程序運(yùn)行過(guò)程中其值可以改變的量。變量是有變量名、變量值、變量地址和數(shù)據(jù)類(lèi)型幾個(gè)屬性,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。2.3.2變量2.變量的定義

格式為:數(shù)據(jù)類(lèi)型變量1,變量2,……;其中數(shù)據(jù)類(lèi)型可以是前面講過(guò)的各種數(shù)據(jù)類(lèi)型。例如:intx,y,z;//定義了3個(gè)整型變量x、y、zfloata,b,c;//定義了3個(gè)實(shí)型變量a、b、c注意:變量必須先定義,后使用。2.3.2變量3.變量與初始化

為變量賦值有兩種方法:初始化和賦初值(1)初始化:定義變量的同時(shí)進(jìn)行賦值。

格式:數(shù)據(jù)類(lèi)型變量名=初始化值;

//intx=10,y=x+5;初始值可以是一個(gè)常量,也可以是一個(gè)表達(dá)式。(2)賦初值:先定義變量,后賦值。

格式:數(shù)據(jù)類(lèi)型變量名;

變量名=初始化值;

例如:intx1;x1=10;注意:⑴

在一個(gè)語(yǔ)句中可以定義同一類(lèi)型的多個(gè)變量;不能在一個(gè)語(yǔ)句中同時(shí)賦值多個(gè)變量。

例如,inta=b=3;錯(cuò)誤。inta=3,b=3;正確⑵

在同一個(gè)程序塊中,不能有兩個(gè)相同的變量名。⑶變量賦值時(shí),等號(hào)左邊的變量類(lèi)型要和等號(hào)右邊值的類(lèi)型匹配。2.4運(yùn)算符和表達(dá)式計(jì)算機(jī)與信息科學(xué)學(xué)院楊衛(wèi)明單目運(yùn)算符又稱(chēng)一元運(yùn)算符,它只對(duì)一個(gè)操作數(shù)進(jìn)行操作。雙目運(yùn)算符又稱(chēng)二元運(yùn)算符,它可以對(duì)兩個(gè)操作數(shù)進(jìn)行操作。三目運(yùn)算符又稱(chēng)三元運(yùn)算符,它可以對(duì)三個(gè)操作數(shù)進(jìn)行操作。C++語(yǔ)言中只有一個(gè)三目運(yùn)算符,就是條件運(yùn)算符?:。2.4運(yùn)算符和表達(dá)式運(yùn)算符是C++語(yǔ)言實(shí)現(xiàn)各種運(yùn)算的符號(hào)。根據(jù)操作對(duì)象個(gè)數(shù)的不同,可分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。表達(dá)式是由運(yùn)算符和各種運(yùn)算對(duì)象組合而成的式子。C++語(yǔ)言定義了豐富的運(yùn)算符。運(yùn)算符給出運(yùn)算的類(lèi)型和參與運(yùn)算的操作數(shù)的個(gè)數(shù)。運(yùn)算符分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符等。使用運(yùn)算符時(shí),要注意以下幾點(diǎn):2.4運(yùn)算符和表達(dá)式⑴運(yùn)算符的功能。如加、減、乘、除等。⑵與操作數(shù)的關(guān)系,注意操作數(shù)的個(gè)數(shù)和類(lèi)型。⑶運(yùn)算符的優(yōu)先級(jí)別。⑷運(yùn)算符的結(jié)合性。2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將操作數(shù)連接起來(lái)的式子。優(yōu)先級(jí):與數(shù)學(xué)相同。結(jié)合方向:自“自左至右”。

基本算術(shù)運(yùn)算符號(hào)+(加法運(yùn)算符,或正值運(yùn)算符。)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。)*(乘法運(yùn)算符)/(除法運(yùn)算符)%(模運(yùn)算符,要求%兩側(cè)均為整型數(shù))2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式+(取正),-(取負(fù))是單目運(yùn)算符,其余是雙目運(yùn)算符。

例如:+3,2,-4“/”運(yùn)算符,當(dāng)兩個(gè)操作數(shù)為整數(shù)時(shí),表示整除。

例如:5/2-->2“/”要表示通常意義上的除法,其中至少一個(gè)操作數(shù)不為整型。例如:5.0/2-->2.500000“%”兩個(gè)操作數(shù)必須是整數(shù)或字符型數(shù)據(jù)。例如:5%3--->23%8--->3注意:2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式//程序舉例:#include<iostream>usingnamespacestd;intmain(){

inti=4,j=5,k=6;intx;x=(i+j)*k/53;cout<<"x="<<x<<endl;x=25*4/2%k;cout<<"x="<<x<<endl;return1;}運(yùn)行結(jié)果:x=1x=22.自增、自減運(yùn)算符及表達(dá)式自增自減運(yùn)算符++,--都是單目運(yùn)算符。有前置和后置兩種形式

例如

前置運(yùn)算:++i;--i

后置運(yùn)算:i--;i++;

自增自減運(yùn)算符都是自己+1或者減1.單獨(dú)運(yùn)算時(shí),前置和后置沒(méi)有區(qū)別。例如i++和++i,等價(jià)于i=i+1;混合運(yùn)算時(shí),前置運(yùn)算++,--在前面的,變量先自身加減1,然后再參與運(yùn)算。

例如:inti=3,j;j=++i;等價(jià)于i=i+1;j=i;混合運(yùn)算時(shí),后置運(yùn)算++,--在后面的,變量再參與運(yùn)算,然后自身才加減1例如:inti=3,j;j=i--;等價(jià)于j=i;i=i-1;由此可見(jiàn),自增自減運(yùn)算符可以是式子更加簡(jiǎn)單。2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式注意:⑴自增、自減運(yùn)算符只能用于變量。++5是錯(cuò)誤的⑵自增、自減運(yùn)算符的結(jié)合方向是自右向左。⑶自增、自減運(yùn)算符在有些情況下的使用可能會(huì)出現(xiàn)歧義,從而產(chǎn)生意想不到的結(jié)果。例如:inti=3,j=4,k;

k=i+++j;

k=(i++)+j;2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式【例2.2】自增自減的運(yùn)用#include<iostream>usingnamespacestd;intmain(){ inti=10,a; a=i++; cout<<"a="<<a<<'\t'<<"i="<<i<<endl; intj=20,b; b=--j; cout<<"b="<<b<<'\t'<<"j="<<j<<endl; return1;}2.4.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式程序運(yùn)行結(jié)果:a=10i=11b=19j=192.4.2關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符與表達(dá)式關(guān)系運(yùn)算符用于對(duì)兩個(gè)數(shù)值或變量進(jìn)行比較,其結(jié)果是一個(gè)邏輯值(“真”或“假”)。運(yùn)算符運(yùn)算范例結(jié)果==相等于4==30!=不等于4!=31<

小于4<30>

大于4>31<=小于等于4<=30>=大于等于4>=31不要把關(guān)系運(yùn)算符“==”誤用為賦值運(yùn)算符“=”。不要將不等于運(yùn)算符“!=”寫(xiě)成其他語(yǔ)言中的“<>”。'a'>=60的意思是'a'的ASCII碼值與60比較大小。對(duì)數(shù)學(xué)中關(guān)系式5≤x≤20,在C++中不能寫(xiě)成5<=x<=20形式,這是錯(cuò)誤的。正確的表達(dá)式應(yīng)該是:5<=x&&x<=20。2.4.2關(guān)系運(yùn)算符與關(guān)系表達(dá)式應(yīng)用注意【程序舉例】#include<iostream>usingnamespacestd;intmain(){ inti=10,j=20; cout<<(i<j)<<endl; cout<<(i<=j)<<endl; cout<<(i>j)<<endl; cout<<(i>=j)<<endl; cout<<(i==j)<<endl; cout<<(i!=j)<<endl; cout<<(i+10>j==0)<<endl; return1;}2.4.2關(guān)系運(yùn)算符與關(guān)系表達(dá)式運(yùn)行結(jié)果:1100011【程序舉例】#include<iostream>usingnamespacestd;intmain(){ inti=10,j=20; cout<<(i<j)<<""<<(i<=j)<<endl; cout<<(i>j)<<""<<(i>=j)<<endl; cout<<(i==j)<<""<<(i!=j)<<endl; cout<<(15<j<20)<<""<<(i+10>j==0)<<endl; return1;}2.4.2關(guān)系運(yùn)算符與關(guān)系表達(dá)式運(yùn)行結(jié)果:110001112.4.3邏輯運(yùn)算符與邏輯表達(dá)式2.4.3邏輯運(yùn)算符與邏輯表達(dá)式運(yùn)算符運(yùn)算范例結(jié)果!非!a如果a為假,則!a為真如果a為真,則!a為假&&與a&&b如果a和b都為真,則結(jié)果為真否則為假|(zhì)|或a||b如果a和b有一個(gè)或一個(gè)以上為真,則結(jié)果為真,二者都為假,結(jié)果為假邏輯運(yùn)算符用于判斷數(shù)據(jù)的真假,其結(jié)果仍為“真”或“假”。2.4.3邏輯運(yùn)算符與邏輯表達(dá)式

舉例:請(qǐng)問(wèn)z1,z2,z3的值為多少?

intx=3,y=5,z1,z2,z3;

z1=(x>0)||(y<10);z2=(x==0)&&(y<10);

z3=!(x==3);【程序舉例】#include<iostream>usingnamespacestd;intmain(){intx=12,y=9,z1,z2,z3;z1=(x>0)||(y<10);z2=(x==0)&&(y<10);z3=!(x==3);cout<<"z1="<<z1<<endl;cout<<"z2="<<z2<<endl;cout<<"z3="<<z3<<endl;return1;}2.4.3邏輯運(yùn)算符與邏輯表達(dá)式程序運(yùn)行結(jié)果:z1=1z2=0z3=12.4.4賦值運(yùn)算符與賦值表達(dá)式C++中的賦值運(yùn)算符分為兩種:簡(jiǎn)單賦值運(yùn)算符和復(fù)合賦值運(yùn)算符。1.簡(jiǎn)單賦值運(yùn)算符“=”

表達(dá)式形式:變量=表達(dá)式

例如x=3/2;2.復(fù)合賦值運(yùn)算符由一個(gè)數(shù)值型運(yùn)算符和基本賦值運(yùn)算符組合而成。共10個(gè):+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。

復(fù)合賦值表達(dá)式形式:變量#=表達(dá)式

其中,‘#’表示數(shù)值型運(yùn)算符。例如:x%=5-2;等價(jià)于x=x%(5-2)2.4.4賦值運(yùn)算符與賦值表達(dá)式【例2.3】復(fù)合賦值運(yùn)算符的運(yùn)用#include<iostream>usingnamespacestd;intmain(){ inti=10,j=20; cout<<(i<j)<<endl; cout<<(i<=j)<<endl; cout<<(i>j)<<endl; cout<<(i>=j)<<endl; cout<<(i==j)<<endl; cout<<(i!=j)<<endl; cout<<(i+10>j==0)<<endl; return1;}2.4.4賦值運(yùn)算符與賦值表達(dá)式程序運(yùn)行結(jié)果:11000112.4.4賦值運(yùn)算符與賦值表達(dá)式【例2.5】賦值表達(dá)式的應(yīng)用。#include<iostream>usingnamespacestd;intmain()v{intm=3,n=4,k;k=m++---n;cout<<"k="<<k<<endl;charx='m',y='n';intz;z=y<x;cout<<"z="<<z<<endl;z=(y==x+1);cout<<"z="<<z<<endl;z=('y'!='Y');cout<<"z="<<z<<endl;inta=1,b=3,c=5;a+=b*=c-=2;cout<<"a="<<a<<','<<"b="<<b<<','<<"c="<<c<<endl;return0;}運(yùn)行結(jié)果:k=0z=0z=1z=1a=10,b=9,c=32.4.5位運(yùn)算符C++有6個(gè)位運(yùn)算符:~(按位求反)、&(按位與)、|(按位或)、^(按位異或)、>>(右移位)、<<(左移位)。注意:位運(yùn)算操作數(shù)只能是整型或字符型的數(shù)據(jù),不能為實(shí)型數(shù)據(jù)。操作數(shù)轉(zhuǎn)換成二進(jìn)制位進(jìn)行運(yùn)算,運(yùn)算規(guī)則同邏輯運(yùn)算符。移位運(yùn)算的結(jié)果就是位運(yùn)算表達(dá)式的值,參與運(yùn)算的兩個(gè)操作數(shù)的值并沒(méi)有發(fā)生變化。2.4.5位運(yùn)算符inta=25,b=18,m;m=a&b;cout<<"m="<<m<<endl;先a的值25,b的值18轉(zhuǎn)換成二進(jìn)制,然后按位進(jìn)行邏輯與運(yùn)算25-->1100118-->1001011001&10010————1000010000二進(jìn)制轉(zhuǎn)換成十進(jìn)制等于16,所以m=162.4.5位運(yùn)算符inta=25,b=18,m;

m=a^b;cout<<"m="<<m<<endl;先a的值25,b的值18轉(zhuǎn)換成二進(jìn)制,然后按位進(jìn)行邏輯異或運(yùn)算異或運(yùn)算規(guī)則是:二進(jìn)制位相同為0,相異為1,即同0異1.25-->1100118-->1001011001^10010————0101101011二進(jìn)制轉(zhuǎn)換成十進(jìn)制等于11,所以m=112.4.5位運(yùn)算符2.4.5位運(yùn)算符【程序舉例】位運(yùn)算符的應(yīng)用。#include<iostream>usingnamespacestd;intmain(){

inta=25,b=18,m,n,i,j,k;m=a&b;cout<<"m="<<m<<endl;n=a|b;cout<<"n="<<n<<endl;i=a^b;cout<<"i="<<i<<endl;j=a<<1;cout<<"j="<<j<<endl;k=a>>1;cout<<"k="<<k<<endl;return0;}運(yùn)行結(jié)果為:m=16n=27i=11j=50k=122.4.6其他運(yùn)算符1.條件運(yùn)算符2.4.6其他運(yùn)算符三目運(yùn)算符,形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3執(zhí)行過(guò)程:先分析表達(dá)式1,其值為真時(shí),則表達(dá)式2的值為條件表達(dá)式的值;否則表達(dá)式3的值為條件表達(dá)式的值。優(yōu)先級(jí)低于算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符,高于賦值運(yùn)算符。結(jié)合性為“從右到左”。

2.逗號(hào)運(yùn)算符2.4.6其他運(yùn)算符逗號(hào)做運(yùn)算符時(shí),其表達(dá)式形式如下:表達(dá)式1,表達(dá)式2,表達(dá)式3,--,表達(dá)式n執(zhí)行過(guò)程:從左往右進(jìn)行運(yùn)算,先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,最后計(jì)算表達(dá)式n。最后一個(gè)表達(dá)式的值為整個(gè)逗號(hào)表達(dá)式的值。注意,在C++語(yǔ)言運(yùn)算符中,逗號(hào)運(yùn)算符的運(yùn)算優(yōu)先級(jí)最低。例如: inta=3,b=5,c=6;//逗號(hào)為間隔符cout<<(a+=b,b*=a,c-=a+b);//逗號(hào)為運(yùn)算符

2.4.7表達(dá)式中數(shù)據(jù)類(lèi)型的轉(zhuǎn)換1.

隱含轉(zhuǎn)換隱含轉(zhuǎn)換是由編譯系統(tǒng)自動(dòng)完成的,計(jì)算完成后,操作數(shù)仍保持原有的數(shù)據(jù)類(lèi)型。當(dāng)操作數(shù)的類(lèi)型不一致時(shí),表達(dá)式的類(lèi)型就取決于操作數(shù)中類(lèi)型最高的操作數(shù)類(lèi)型。轉(zhuǎn)換規(guī)則:

注意:

橫向,自動(dòng)轉(zhuǎn)換;縱向,混合運(yùn)算時(shí)向最高的數(shù)據(jù)類(lèi)型轉(zhuǎn)換。2.4.7表達(dá)式中數(shù)據(jù)類(lèi)型的轉(zhuǎn)換例如:

inti;floatf;doubled;longe;

則:

10+‘a(chǎn)’+i*f-d/e的結(jié)果為double型2.強(qiáng)制轉(zhuǎn)換作用是將表達(dá)式的類(lèi)型強(qiáng)制轉(zhuǎn)換成指定的數(shù)據(jù)類(lèi)型。一般形式:數(shù)據(jù)類(lèi)型(表達(dá)式)或(數(shù)據(jù)類(lèi)型)表達(dá)式例如:

(int)a/3//將a強(qiáng)制轉(zhuǎn)換成int型,再除以3。float(5%3)//將5%3的結(jié)果轉(zhuǎn)換成float型注意:如果將高類(lèi)型轉(zhuǎn)換成低類(lèi)型,會(huì)造成數(shù)據(jù)精度的損失,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論