




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式主要內(nèi)容C++語言的數(shù)據(jù)類型常量變量運(yùn)算符和表達(dá)式22.1C++語言的數(shù)據(jù)類型C++程序中的每個(gè)變量或常量都要擁有一種數(shù)據(jù)類型C++中的數(shù)據(jù)類型大體可以分成三類基本類型導(dǎo)出類型用戶定義類型32.1.1基本類型邏輯型用關(guān)鍵字bool表示,又稱為bool型(布爾型)取值只包含true和false。true對(duì)應(yīng)整數(shù)1,表示邏輯真;false對(duì)應(yīng)整數(shù)0,表示邏輯假。字符型用關(guān)鍵字char表示,又稱為char型字符型的取值范圍是全部基本字符以及ASCII碼集或擴(kuò)充ASCII碼集對(duì)應(yīng)的全部符號(hào)字符型數(shù)據(jù)占用1字節(jié)(Byte),即8位(bit)空間42.1.1基本類型整型整型用關(guān)鍵字int表示,又稱為int型整型數(shù)據(jù)的取值范圍是計(jì)算機(jī)所能表示的全部整數(shù)有符號(hào)短整型數(shù)的取值范圍是-32768~32767。整型數(shù)據(jù)占據(jù)的存儲(chǔ)空間大小根據(jù)機(jī)器的不同而有所差別例如,在16位計(jì)算機(jī)中,整型變量占2個(gè)字節(jié),而在32位計(jì)算機(jī)中,整型變量占4個(gè)字節(jié)52.1.1基本類型浮點(diǎn)型浮點(diǎn)型包括單精度型和雙精度型兩種,單精度型用關(guān)鍵字float表示,又稱float型;雙精度型用關(guān)鍵字double表示,又稱double型。C++中的浮點(diǎn)數(shù)可以采用尾數(shù)加階碼的表示形式,其中單精度型的取值范圍是-3.4E38~3.4E38,但不能超過7位有效數(shù)字;雙精度型的取值范圍是-1.7977E308~1.7977E308,但不能超過15位有效數(shù)字。如果有效數(shù)字位數(shù)超出位數(shù),則舍去后面的數(shù)字float型數(shù)據(jù)一般占用4字節(jié)(Byte),即32位(bit)空間;double型數(shù)據(jù)一般占用8字節(jié)(Byte),即64位(bit)空間62.1.1基本類型空值型用關(guān)鍵字void表示,因此又稱為void型空值型的取值為空C++中不存在void型的常量或變量。C++語言規(guī)定,所有函數(shù)聲明都必須指明返回值類型,沒有返回值的函數(shù)應(yīng)說明為void類型void類型還可以用來聲明一個(gè)指針變量,例如:void*p;72.1.2基本類型的派生類型派生類型基本類型的字長及其取值范圍可以放大和縮小,改變后的類型就叫做基本類型的派生類型派生類型聲明符由基本類型關(guān)鍵字char、int、float、double前面加上類型修飾符組成。類型修飾符包括:short 短類型,縮短字長;long 長類型,加長字長;signed 有符號(hào)類型,取值范圍包括正負(fù)值;unsigned 無符號(hào)類型,取值范圍只包括正值;實(shí)際使用中還可以使用派生類型名的簡化形式,其效果與完整的派生類型名等價(jià)例如,可以用long代替longint,用unsignedlong代替unsignedlongint。下表
“聲明符”一欄中給出的等價(jià)類型名之間用“或”字分隔82.1.2基本類型的派生類型類型聲明符長度(字節(jié))取值范圍
有符號(hào)短整數(shù)short或shortint或signedshortint2-215~215-1內(nèi)的整數(shù)
無符號(hào)短整數(shù)unsignedshort或unsignedshort或int20~216-1內(nèi)的整數(shù)
有符號(hào)整數(shù)int或signedint4-231~231-1內(nèi)的整數(shù)
無符號(hào)整數(shù)unsigned或unsignedint40~232-1內(nèi)的整數(shù)
有符號(hào)長整數(shù)long或longint或signedlongint4-231~231-1內(nèi)的整數(shù)
無符號(hào)長整數(shù)unsignedlong或
unsignedlongint40~232-1內(nèi)的整數(shù)9C++基本數(shù)據(jù)類型及其派生類型在32位計(jì)算機(jī)上的描述(1)2.1.2基本類型的派生類型類型聲明符長度(字節(jié))取值范圍
有符號(hào)字符char或signedchar1-128~127內(nèi)的整數(shù)
無符號(hào)字符unsignedchar10~255內(nèi)的整數(shù)
單精度數(shù)float4-3.402823*1038~3.402823*1038內(nèi)的數(shù)
雙精度數(shù)double8-1.7977*10308~1.7977*10308內(nèi)的數(shù)
長雙精度longdouble8-1.7977*10308~1.7977*10308內(nèi)的數(shù)
空值void
10C++基本數(shù)據(jù)類型及其派生類型在32位計(jì)算機(jī)上的描述(2)2.2常量在程序執(zhí)行過程中值不改變的量
常量有兩種表示形式字面常量符號(hào)常量字面常量的類型是根據(jù)書寫形式來區(qū)分的,例如15,-2.26,'a',"helloworld"等都是字面常量,它們的類型分別為:整型、浮點(diǎn)型、字符型、字符串類型。每個(gè)字面常量的字面本身就是它的值。符號(hào)常量是一個(gè)標(biāo)識(shí)符,在程序中必須遵循“先聲明,后使用”的原則。112.2.1邏輯常量邏輯類型只包含兩個(gè)取值:true和false,它們稱為邏輯常量例如,對(duì)于兩個(gè)整型數(shù)x和y:boolb=(x==y);如果x與y相等,則b的值為true;否則b的值為false。邏輯常量主要用在邏輯運(yùn)算中。由于邏輯值對(duì)應(yīng)著整數(shù)1或0,所以它也能夠像其它整數(shù)一樣出現(xiàn)在表達(dá)式中,參與各種整數(shù)運(yùn)算。122.2.2字符常量字符常量簡稱字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)字符。單引號(hào)中間有一個(gè)字符例如,'a'和'&',特殊形式的字符常量例如'\n','\146','\x6E'等以'\'開頭的包括多個(gè)字符的字符序列也都是符合規(guī)定的字符常量無論字符常量包含一個(gè)還是多個(gè)字符,每個(gè)字符常量只能表示一個(gè)字符,當(dāng)字符常量的一對(duì)單引號(hào)內(nèi)有多于一個(gè)的字符時(shí),將按照一定的規(guī)則解釋為一個(gè)字符。例如,'a'表示字符a,'\146'表示字符f。132.2.2字符常量轉(zhuǎn)義字符用反斜線‘\’引導(dǎo)的下一個(gè)字符失去了原來的含義,而轉(zhuǎn)義為具有某種控制功能的字符。例如,‘\n’中的字符n通過反斜線轉(zhuǎn)義后成為一個(gè)換行符,其ASCII碼為10,'\''表示單引號(hào)字符,直接使用'''表示單引號(hào)則不行。使用反斜線引導(dǎo)一個(gè)具有1至3位的八進(jìn)制整數(shù)或一個(gè)以字母x(大、小寫均可)作為開始標(biāo)記的具有1至2位的十六進(jìn)制整數(shù),對(duì)應(yīng)的字符就是以這個(gè)整數(shù)作為ASCII碼的字符例如,'\0','\10','\73','\x5A'對(duì)應(yīng)的字符依次為空字符,換行符,;和Z。由反斜線字符引導(dǎo)的符合上面規(guī)定的字符序列稱為轉(zhuǎn)義序列142.2.2字符常量轉(zhuǎn)義序列對(duì)應(yīng)值功能\a7
響鈴\b8
退格\f12
換頁\n10
換行\(zhòng)r13
回車\t9
水平制表\v11
垂直制表\\92
反斜線\'39
單引號(hào)\"34
雙引號(hào)\?63
問號(hào)\oooooo的十進(jìn)制值
表示八進(jìn)制數(shù)\xhhhh的十進(jìn)制值
表示十六進(jìn)制數(shù)15C++中的字符轉(zhuǎn)義序列2.2.2字符常量轉(zhuǎn)義字符轉(zhuǎn)義序列不但可以作為字符常量,也可以同其他字符一樣出現(xiàn)在字符串中。例如,"abcde\n"字符串中含有六個(gè)字符,最后一個(gè)為換行符,"\tx="中的首字符為水平制表符,輸出時(shí)將使光標(biāo)后移8個(gè)字符位置一個(gè)字符用于顯示輸出時(shí),將輸出字符本身或體現(xiàn)出相應(yīng)的控制功能;當(dāng)它在表達(dá)式中參加整數(shù)運(yùn)算時(shí),將使用它的ASCII碼值162.2.2字符常量例2.1字符常量的使用方式。//ex2_1.cpp#include<iostream>usingnamespacestd;intmain(){charch='H'; //語句1 intx=ch-2; //語句2 if(ch>'C') //語句3cout<<ch<<'>'<<'C'<<endl; cout<<"Thereare"<<x<<"apples.\n";//語句4return0;}172.2.2字符常量例2.1字符常量的使用方式。程序分析語句1定義字符變量ch并將字符H作為其初值,實(shí)際上是把字符H的ASCII碼值72賦給了ch。語句2定義整型變量x并以表達(dá)式ch-2的值70作為其初值。語句3首先進(jìn)行ch>'C'的比較,實(shí)際上是取出各自的值(即對(duì)應(yīng)的ASCII碼)進(jìn)行比較,'H'的ASCII碼值72大于'C'的ASCII碼值67,因此條件成立,執(zhí)行其后的輸出語句,向屏幕輸出H>C。語句4輸出一個(gè)字符串并且使光標(biāo)移到下一行的開始位置處。程序的執(zhí)行結(jié)果為:H>CThereare70apples.182.2.3整型常量整型常量就是整型常數(shù),簡稱整數(shù)十進(jìn)制整數(shù)以正號(hào)(+)或負(fù)號(hào)(-)開頭,由首位非0的一串十進(jìn)制數(shù)字組成八進(jìn)制整數(shù)以0開頭,后面接若干個(gè)八進(jìn)制數(shù)字(借用十進(jìn)制數(shù)字中的0
7)。八進(jìn)制整數(shù)前面不帶正負(fù)號(hào),全部默認(rèn)為正數(shù)十六進(jìn)制整數(shù)以數(shù)字0和字母x(大、小寫均可)開頭,后面接若干個(gè)十六進(jìn)制數(shù)字(借用十進(jìn)制數(shù)字0
9,字母A
F或a
f)。同八進(jìn)制整數(shù)一樣,十六進(jìn)制整數(shù)也全部為正數(shù)。192.2.3整型常量添加u或者l后綴為字母u(大、小寫均可),規(guī)定它為一個(gè)無符號(hào)整型(unsignedint)數(shù)后綴為字母l(大、小寫均可),規(guī)定它為一個(gè)長整型(longint)數(shù)在一個(gè)整數(shù)的末尾,可以同時(shí)使用u和l,并且對(duì)排列無要求如15U,0123UL,0x1abcL,1234LU等都是整數(shù),其類型依次為unsignedint,unsignedlongint,longint和unsigned
long
int。202.2.4實(shí)型常量實(shí)型常量簡稱實(shí)數(shù),對(duì)應(yīng)著數(shù)學(xué)中的實(shí)數(shù)概念。實(shí)型常量有十進(jìn)制的定點(diǎn)表示和浮點(diǎn)表示兩種方法。定點(diǎn)表示的實(shí)數(shù)簡稱定點(diǎn)數(shù),即以小數(shù)形式表示實(shí)數(shù)定點(diǎn)表示的實(shí)數(shù)由一個(gè)正號(hào)或負(fù)號(hào)(正號(hào)可以省略)后接若干個(gè)十進(jìn)制數(shù)字和一個(gè)小數(shù)點(diǎn)組成,這個(gè)小數(shù)點(diǎn)可以處在任何一個(gè)數(shù)字位的前面或后面。例如.12,1.2,12.,0.12,-.012等都是符合書寫規(guī)定的定點(diǎn)數(shù)。浮點(diǎn)表示的實(shí)數(shù)簡稱浮點(diǎn)數(shù),即以指數(shù)形式表示實(shí)數(shù)。點(diǎn)表示的實(shí)數(shù)由一個(gè)十進(jìn)制整數(shù)或定點(diǎn)數(shù)后接一個(gè)字母e(大、小均可)和一個(gè)1至3位的十進(jìn)制整數(shù)組成,字母e之前的部分稱為該浮點(diǎn)數(shù)的尾數(shù),之后的部分稱為該浮點(diǎn)數(shù)的指數(shù),該浮點(diǎn)數(shù)的值就是它的尾數(shù)乘以10的指數(shù)冪。例如3.23E5,+6.35e-6都是合乎規(guī)定的浮點(diǎn)數(shù)。212.2.4實(shí)型常量實(shí)型常量分為單精度(float)、雙精度(double)和長雙精度(longdouble)三類float型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié),提供7位有效數(shù)字double型數(shù)據(jù)占8個(gè)字節(jié),提供15位有效數(shù)字longdouble型數(shù)據(jù)占10個(gè)字節(jié),提供19位有效數(shù)字對(duì)于一個(gè)定點(diǎn)數(shù)或浮點(diǎn)數(shù),C++自動(dòng)按一個(gè)雙精度數(shù)(double型)來存儲(chǔ)若在一個(gè)定點(diǎn)數(shù)或浮點(diǎn)數(shù)之后加上字母f(大、小寫均可),則自動(dòng)按一個(gè)單精度數(shù)來存儲(chǔ)3.14和3.14f,雖然數(shù)值相同,但分別代表一個(gè)雙精度數(shù)和一個(gè)單精度數(shù)-2.78E5為一個(gè)雙精度數(shù),而-2.78E5F為一個(gè)單精度數(shù)。222.2.5枚舉常量枚舉常量是枚舉類型中定義的值,即枚舉值。枚舉類型屬于用戶定義類型,用關(guān)鍵字enum表示,因此又稱為enum類型。用戶通常利用枚舉類型定義程序中需要使用的一組相關(guān)符號(hào)常量。聲明枚舉類型的語法格式為:enum<類型名>{<枚舉值表>};enum是關(guān)鍵字,指出要定義的是枚舉類型<類型名>是標(biāo)識(shí)符,即由用戶給出的具體枚舉類型名<枚舉值表>包含多個(gè)枚舉值,它們用逗號(hào)分隔開,每個(gè)枚舉值就是一個(gè)枚舉常量枚舉值有兩種定義形式:一是<值名>;二是<值名>=<整型常量>。例如:enumcolor{RED=1,YELLOW,BLUE};232.2.5枚舉常量關(guān)于enum類型有四點(diǎn)說明:一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,每一個(gè)枚舉值代表一個(gè)整數(shù)。n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,1...n-1對(duì)應(yīng)。若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1,m+2...對(duì)應(yīng),直到下一個(gè)賦值了的枚舉值或結(jié)束。因此,為枚舉值所賦的整型常量值應(yīng)自左至右遞增。在上面的例子中,YELLOW與整數(shù)2相對(duì)應(yīng),BLUE與整數(shù)3相對(duì)應(yīng)。枚舉類型的聲明也可作為成組聲明若干整型符號(hào)常量的方法。也就是說,把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值合在一起定義成一個(gè)枚舉類型。242.2.5枚舉常量由于枚舉類型屬于用戶定義數(shù)據(jù)類型,一旦枚舉類型被定義后就可以使用它來定義變量,例如:enumcolorc1,c2,c3;關(guān)鍵字enum可以省略,color是已經(jīng)定義的枚舉類型,變量c1,c2,c3的取值可以是枚舉值RED,YELLOW,BLUE中的任意一個(gè)。252.3變量變量是程序中用于存儲(chǔ)信息的單元,它對(duì)應(yīng)于某個(gè)內(nèi)存空間。在定義變量時(shí),需要說明變量的名字和數(shù)據(jù)類型。這些信息告訴編譯器要為變量分配多少內(nèi)存空間,以及變量中要存儲(chǔ)什么類型的值。由于變量名可以代表其存儲(chǔ)空間,因此程序能夠在變量中存儲(chǔ)值和取出值。262.3.1變量的定義變量聲明語句的一般格式為:[<存儲(chǔ)類>]<類型名><變量名>[=<初值表達(dá)式>],...;<存儲(chǔ)類>有四種,它們分別是auto、register、static、extern。默認(rèn)的存儲(chǔ)類為auto<類型名>為已存在的一種數(shù)據(jù)類型名稱,如char等基本數(shù)據(jù)類型名,或者用戶定義的數(shù)據(jù)類型名。<變量名>是用戶定義的一個(gè)標(biāo)識(shí)符,不能是關(guān)鍵字,用來表示一個(gè)變量,該變量可以通過后面的可選項(xiàng)賦予一個(gè)值,稱為給變量賦初值。若變量名后不帶有初值表達(dá)式,則變量值不確定。<初值表達(dá)式>是一個(gè)表達(dá)式,它的值就是賦予變量的初值省略號(hào)表示在一條語句中可以定義多個(gè)變量,但各變量定義之間必須用逗號(hào)分開。272.3.1變量的定義幾個(gè)變量定義語句示例:inta,b;charch1='a',ch2='A';intx=a+2*b;doubled1,d2=3.14159;第一條語句定義了兩個(gè)整型變量a和b;第二條語句定義了兩個(gè)字符變量ch1和ch2,其初值分別為‘a(chǎn)’和‘A’;第三條語句定義了一個(gè)整型變量x,并將表達(dá)式a+2*b的值作為其初值;第四條語句定義了兩個(gè)雙精度變量,分別為d1和d2,其中d2的初值為3.14159。282.3.1變量的定義例2.2計(jì)算一個(gè)圓的周長和面積。intmain(){ doubleradius; //定義變量radius cin>>radius; //從鍵盤輸入一個(gè)圓的半徑
doublegirth=2*3.14159*radius; //計(jì)算周長表達(dá)式的值賦給變量girth doublearea=3.14159*radius*radius; //計(jì)算面積表達(dá)式的值賦給變量area cout<<"radius="<<radius<<endl; cout<<"girth="<<girth<<endl; cout<<"area="<<area<<endl; return0;}292.3.1變量的定義例2.2計(jì)算一個(gè)圓的周長和面積。程序分析在程序的主函數(shù)中,第一條語句定義了變量radius,由于沒有給它賦初值,所以其值是不確定的;第二條語句從鍵盤輸入一個(gè)常數(shù)給半徑radius,輸入的常數(shù)可以是整數(shù),也可以是定點(diǎn)數(shù)或浮點(diǎn)數(shù),系統(tǒng)將自動(dòng)把它轉(zhuǎn)換為一個(gè)雙精度數(shù)后再賦值給radius;第三條和第四條語句分別計(jì)算出賦值號(hào)右邊表達(dá)式的值,再分別賦初值給變量girth和area;第五至七條語句依次向屏幕輸出圓的半徑、周長和面積。假定程序運(yùn)行后從鍵盤上輸入的半徑是1.23,則得到的輸出結(jié)果為:radius=1.23girth=7.72831area=4.75291302.3.2變量的使用方式全局變量和局部變量全局變量是指在所有函數(shù)定義、類定義和程序塊之外聲明的變量聲明全局變量時(shí)如果在程序中不對(duì)它進(jìn)行專門的初始化,該變量會(huì)被系統(tǒng)自動(dòng)初始化為0在程序的任何一個(gè)函數(shù)、類或程序塊之內(nèi)均可以訪問全局變量局部變量是指在某個(gè)函數(shù)定義、類定義或程序塊之內(nèi)聲明的變量。局部變量只能在聲明它的函數(shù)、類或程序塊中被訪問312.3.2變量的使用方式例2.3全局變量和局部變量的使用。intx;intmain(){ inty; y=x+2; cout<<"y="<<y<<endl;return0;}322.3.2變量的使用方式例2.3全局變量和局部變量的使用。程序分析上述程序中的變量x是全局變量,它在所有函數(shù)和程序塊之外聲明,但沒有進(jìn)行初始化,所以系統(tǒng)默認(rèn)地將其初始化為0。變量y是局部變量,它在main()函數(shù)中聲明,因此只能在該函數(shù)中被訪問。聲明局部變量y時(shí)也沒有進(jìn)行初始化,與全局變量不同的是,系統(tǒng)并不給它賦默認(rèn)值,沒有初始化的局部變量中保存著一個(gè)不確定的值。通過表達(dá)式y(tǒng)=x+2可以給變量y賦值此程序的運(yùn)行結(jié)果為:
y=2332.3.2變量的使用方式生存期與作用域生存期是指從一個(gè)變量被聲明且分配了內(nèi)存開始,直到該變量聲明語句失效,它占用的內(nèi)存空間被釋放為止。一個(gè)全局變量的生存期從它被聲明開始,直到程序結(jié)束;一個(gè)局部變量的生存期從它被聲明開始,直到包含它的最近的一個(gè)程序塊結(jié)束。作用域是指變量名可以代表該變量存儲(chǔ)空間的范圍。一般情況下,變量的作用域與其生存期一致,但由于C++語言允許在程序的不同部分為不同變量取同一名字,因此一個(gè)變量名的作用域可能小于其生存期。342.3.2變量的使用方式例如在下面代碼段中:1intf()2{3 inta=1,b=5;4 if(b>=3)5{6 doublea=1.0;7b=2;8 }9returna;10 }35int型變量a的生存期是3~10行,double型變量a的生存期是6~8行。int型變量a的作用域卻只能是3~5行和9~10行;6~8行范圍內(nèi)的int變量a雖然被完好地保存著,但卻不能使用,即在6~8行范圍內(nèi)int型變量a是不起作用的。2.3.2變量的使用方式按存儲(chǔ)分配方式的不同變量可以分為四種:auto變量:為變量聲明時(shí)的默認(rèn)存儲(chǔ)類別。auto變量所占用存儲(chǔ)空間的分配和釋放工作將由系統(tǒng)自動(dòng)完成。register變量:register變量可能以寄存器作為其存儲(chǔ)空間。關(guān)鍵字register的作用只能是建議(而不是強(qiáng)制)系統(tǒng)使用寄存器。static變量:靜態(tài)變量的生存期延續(xù)到整個(gè)程序的終止。與全局變量一樣,為靜態(tài)變量分配的存儲(chǔ)空間在程序運(yùn)行過程中不再被釋放;如果未被賦初值,系統(tǒng)將自動(dòng)為其賦初值0extern變量:變量一旦聲明為外部變量,系統(tǒng)就不必像一般變量那樣為其分配內(nèi)存,因?yàn)樵撟兞恳言谶@一局部的外面定義。標(biāo)明某一變量為外部變量可以避免為其重復(fù)分配內(nèi)存。362.3.2變量的使用方式typedef類型說明使用關(guān)鍵字typedef可以為已有類型名定義一個(gè)新類型名。其語法格式為:typedef<已有類型名><新類型名>例如:typedefdoubleprofit;//為double定義新類型名profittypedefintinteger; //為int定義新類型名integerprofita; //等價(jià)于doublea;integerb; //等價(jià)于intb;typedef類型說明并沒有真正地定義新的數(shù)據(jù)類型,它只是相當(dāng)于給某個(gè)已有的數(shù)據(jù)類型起了一個(gè)別名。在規(guī)模較大的程序中為了提高代碼可讀性常采用這種形式。372.3.3符號(hào)常量定義語句符號(hào)常量在使用之前必須先進(jìn)行定義。符號(hào)常量定義語句同變量定義語句類似,其語法格式為:const<類型名><符號(hào)常量名>=<初值表達(dá)式>,……;關(guān)鍵字const指明這是一條符號(hào)常量定義語句,后面跟著符號(hào)常量的類型名,接著是符號(hào)常量名,它是一個(gè)用戶定義的標(biāo)識(shí)符,符號(hào)常量名之后為一個(gè)賦值號(hào)和一個(gè)初值表達(dá)式。注意,必須在聲明符號(hào)常量的同時(shí)為其顯式賦初值。該語句也可以定義多個(gè)符號(hào)常量。系統(tǒng)執(zhí)行符號(hào)常量定義語句時(shí),需要依次為每個(gè)符號(hào)常量分配存儲(chǔ)單元并賦初值。一個(gè)符號(hào)常量定義后,它的值就是定義時(shí)所賦予的初值,作為常量,這個(gè)值以后將始終保持不變?nèi)?lt;類型名>為int,則int可省略。382.3.3符號(hào)常量定義語句幾條符號(hào)常量聲明語句的例子:constinta=5,b=a*4;constdoublepai=3.14159;第一條語句定義了兩個(gè)整型符號(hào)常量a和b,它們的初值分別為5和20;第二條語句定義了一個(gè)雙精度符號(hào)常量pai,用它表示圓周率的值3.14159。第一條語句中的int可以省略不寫C++關(guān)鍵字中的true和false是系統(tǒng)預(yù)先定義的兩個(gè)符號(hào)常量,它們的值分別為1和0。使用符號(hào)常量往往可以提高程序的可讀性和可維護(hù)性。由于符號(hào)常量和變量同樣要求系統(tǒng)為其分配內(nèi)存單元,所以可以把符號(hào)常量視為一種不允許賦值改變的或只讀不寫的變量,稱其為const變量。392.4運(yùn)算符和表達(dá)式C++語言中的運(yùn)算符又稱為操作符,是用來對(duì)數(shù)據(jù)進(jìn)行運(yùn)算的符號(hào),運(yùn)算中需要的數(shù)據(jù)稱為操作數(shù)或運(yùn)算分量。由一個(gè)或多個(gè)操作數(shù)與操作符連接而成的有效運(yùn)算式稱為表達(dá)式。表達(dá)式還能以運(yùn)算分量的角色出現(xiàn)在運(yùn)算中從而組成新的表達(dá)式。任何表達(dá)式都有一個(gè)運(yùn)算結(jié)果。402.4.1運(yùn)算符和表達(dá)式的概念C++語言中的運(yùn)算符可以根據(jù)其運(yùn)算分量個(gè)數(shù)的多少分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符單目運(yùn)算符位于運(yùn)算分量之前,例如要對(duì)某個(gè)變量x取相反數(shù)可以表示為-x,這里的“-”符號(hào)就是一個(gè)單目運(yùn)算符雙目運(yùn)算符一般位于兩個(gè)運(yùn)算分量之間,例如兩個(gè)數(shù)a和b相加可以表示為a+b,這里的“+”號(hào)就是雙目運(yùn)算符三目運(yùn)算符只有一個(gè),即條件運(yùn)算符“?:”,它由兩個(gè)字符組成,可以分隔三個(gè)運(yùn)算分量。運(yùn)算符可能是一個(gè)字符,也可能由兩個(gè)或三個(gè)字符組成一些運(yùn)算符是C++關(guān)鍵字例如,加號(hào)(+)就是一個(gè)字符,邏輯與(&&)就是兩個(gè)字符,左移賦值號(hào)(<<=)就是三個(gè)字符,測類型長度運(yùn)算符(sizeof)就是一個(gè)C++關(guān)鍵字41每一種運(yùn)算與其它運(yùn)算的區(qū)別在于以下三個(gè)方面:參加運(yùn)算的運(yùn)算分量的數(shù)量和類型;運(yùn)算結(jié)果的數(shù)據(jù)類型;運(yùn)算的具體操作。例如,浮點(diǎn)型乘法運(yùn)算有兩個(gè)float型運(yùn)算分量,運(yùn)算結(jié)果為float型,具體操作為兩數(shù)相乘求積;大于(>)關(guān)系運(yùn)算有兩個(gè)int型(或float、char型等)運(yùn)算分量,運(yùn)算結(jié)果為布爾類型值,具體操作為對(duì)兩個(gè)運(yùn)算分量進(jìn)行比較。422.4.1運(yùn)算符和表達(dá)式的概念2.4.2運(yùn)算類型與運(yùn)算符C++語言為每種允許的運(yùn)算提供一種運(yùn)算符例如整數(shù)加法為“+”,小于關(guān)系運(yùn)算符為“<”,增量運(yùn)算為“++”有些運(yùn)算符可以一符多用,即一個(gè)運(yùn)算符對(duì)應(yīng)多種運(yùn)算例如,“*”一般是作為乘法運(yùn)算符,同時(shí),它還是單目取值運(yùn)算(用于指針類型)的運(yùn)算符同一類運(yùn)算可以組成一種運(yùn)算類型,凡是具有相同運(yùn)算分量和結(jié)果類型的運(yùn)算劃分為同一類運(yùn)算,比如算術(shù)運(yùn)算,關(guān)系運(yùn)算,邏輯運(yùn)算,位運(yùn)算等。432.4.3賦值運(yùn)算賦值運(yùn)算是一種雙目運(yùn)算,其形式為:<變量名>=<表達(dá)式>右運(yùn)算分量為一個(gè)表達(dá)式?!?”為賦值運(yùn)算符。左運(yùn)算分量為與右運(yùn)算分量類型相同的變量。賦值運(yùn)算的具體操作為:先計(jì)算右端表達(dá)式的值,然后把該值賦給左端變量。由賦值符號(hào)連接左端變量和右端表達(dá)式而構(gòu)成的式子稱為賦值表達(dá)式。每個(gè)賦值表達(dá)式都有一個(gè)值,這個(gè)值就是通過賦值得到的左端變量的值。例如,x=3*15-1的值就是通過賦值而保存在x中的值44。賦值表達(dá)式兩邊的數(shù)據(jù)類型不同時(shí),在賦值前會(huì)自動(dòng)把右邊表達(dá)式的值轉(zhuǎn)換為與左邊變量類型相同的值,然后再把這個(gè)值賦給左邊變量442.4.3賦值運(yùn)算一些說明:在一個(gè)賦值表達(dá)式中可以使用多個(gè)賦值號(hào)實(shí)現(xiàn)給多個(gè)變量賦值的功能。例如,在執(zhí)行x=y=z=0時(shí)就能夠同時(shí)給x,y和z賦值0。賦值號(hào)也可以使用在常量和變量的聲明語句中,用于給符號(hào)常量和變量賦初值。但這里的賦值號(hào)只起到賦初值的作用,并不構(gòu)成賦值表達(dá)式。
C++中還有許多復(fù)合賦值運(yùn)算符,它們的含義為:將右邊表達(dá)式的值同左邊變量的值進(jìn)行相應(yīng)運(yùn)算后,再把這個(gè)運(yùn)算結(jié)果賦給左邊的變量,該復(fù)合賦值表達(dá)式的值就是保存在左邊變量中的值例如,執(zhí)行x+=2時(shí),就是把x的值加上2后再賦給x,它與執(zhí)行x=x+2表達(dá)式的計(jì)算是等價(jià)的,若x的值為5,則計(jì)算后得到的x的值為7,它也是這個(gè)表達(dá)式的值。452.4.3賦值運(yùn)算一些說明:賦值號(hào)或復(fù)合賦值號(hào)左邊必須是一個(gè)左值左值是指具有對(duì)應(yīng)的可由用戶訪問的存儲(chǔ)單元,并且能夠由用戶改變其值的量例如,一個(gè)變量就是一個(gè)左值,因?yàn)樗鼘?duì)應(yīng)著一個(gè)存儲(chǔ)單元,并可由用戶通過變量名訪問和改變其值一個(gè)字面常量就不是一個(gè)左值,因?yàn)樗淮嬖诠┯脩粼L問并能改變其值的存儲(chǔ)單元一個(gè)通過const語句定義的符號(hào)常量也不是一個(gè)左值,因?yàn)殡m然用戶能訪問它,但不能改變它的值一般的算術(shù)表達(dá)式(如x*2+5)也不是一個(gè)左值,因?yàn)樗闹抵荒茈S時(shí)被使用,不能再被訪問和改變不是左值的量被稱為右值。462.4.3賦值運(yùn)算一些說明:一個(gè)賦值表達(dá)式的結(jié)果實(shí)際上是一個(gè)左值,即賦值號(hào)左邊的變量例如,x=y-2的值就是被賦值后的x,它是一個(gè)左值,代表著對(duì)應(yīng)存儲(chǔ)單元中的值x*=y的結(jié)果也是一個(gè)左值,即x表達(dá)式(x+=5)*=2是合法的,其結(jié)果為左值x,若x的原值為2,則最后得到的x值為14472.4.4算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算是指int型、float型、double型(也包括char型)的數(shù)值類數(shù)據(jù)計(jì)算后,得到同一類型數(shù)據(jù)的運(yùn)算。算術(shù)運(yùn)算中使用的運(yùn)算符稱為算術(shù)運(yùn)算符。單目算術(shù)運(yùn)算符包括:-(單減)、++(增量)和--(減量)單減運(yùn)算的格式為:-<運(yùn)算分量>單減運(yùn)算相當(dāng)于對(duì)運(yùn)算分量取相反數(shù),例如:-a,-(x+y)。增量運(yùn)算有兩種形式。前綴增量:++<運(yùn)算分量>后綴增量:<運(yùn)算分量>++前綴增量和后綴增量的區(qū)別是:如果++i和i++作為表達(dá)式又參加其它運(yùn)算的話,前者是先令i加1, 然后再參加其它運(yùn)算;后者則是先令i參加其它運(yùn)算,然后再令i加1。減量運(yùn)算的格式和操作與增量運(yùn)算類似。48單目算術(shù)運(yùn)算符在下面各表達(dá)式中,如果int型變量x的初始值為10,則:++x //表達(dá)式的值為增1后的x值,即11x++ //x的值為11,但表達(dá)式的值仍為10y=x++ //x的值為11,y的值為10y=--x //x的值為9,y的值為9y=2*x++ //x的值為11,y的值為20492.4.4算術(shù)運(yùn)算符和算術(shù)表達(dá)式雙目算術(shù)運(yùn)算符包括:+(加)、-(減)、*(乘)、/(除)和%(取余)它們的含義與數(shù)學(xué)上相同。該類運(yùn)算的運(yùn)算分量為任一種數(shù)值類型,即任一種整數(shù)類型和任一種實(shí)數(shù)類型。502.4.4算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)表達(dá)式由算術(shù)運(yùn)算符(包括單目和雙目)連接運(yùn)算分量而組成的式子稱為算術(shù)表達(dá)式。每個(gè)算術(shù)表達(dá)式的值為一個(gè)數(shù)值,其類型按照以下規(guī)則確定:當(dāng)參加運(yùn)算的兩個(gè)運(yùn)算分量均為整型時(shí)(但具體類型可以不同,如一個(gè)為int型,另一個(gè)為char型),則運(yùn)算結(jié)果為int型。當(dāng)參加運(yùn)算的兩個(gè)運(yùn)算分量中至少有一個(gè)是單精度型,并且另一個(gè)不是雙精度型時(shí),則運(yùn)算結(jié)果為float型。當(dāng)參加運(yùn)算的兩個(gè)運(yùn)算分量中至少有一個(gè)是雙精度型時(shí),則運(yùn)算結(jié)果為double型。512.4.4算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)表達(dá)式在下面各表達(dá)式中,變量x和y的初始值分別為29和6,如果x和y為int型,則:x–y //表達(dá)式的值為23x/8 //表達(dá)式的值為3x/y+5 //表達(dá)式的值為910–x%y //表達(dá)式的值為5如果將y看成double型變量并賦值為6.0,則:x–y //表達(dá)式的值為23.0x/y //表達(dá)式的值為4.83333522.4.4算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)表達(dá)式若要使兩個(gè)整數(shù)相除得到一個(gè)實(shí)數(shù),則必須將其中之一強(qiáng)制轉(zhuǎn)換為實(shí)數(shù)。例如:float(y)/24 //表達(dá)式的值為0.25x/double(-8) //表達(dá)式的值為-3.625其中float(y)和double(-8)分別表示把括號(hào)內(nèi)的表達(dá)式的值強(qiáng)制轉(zhuǎn)換為一個(gè)單精度數(shù)和雙精度數(shù)。532.4.4算術(shù)運(yùn)算符和算術(shù)表達(dá)式2.4.5關(guān)系運(yùn)算符和關(guān)系表達(dá)式C++語言提供了六種關(guān)系運(yùn)算符:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)這六種運(yùn)算符都是雙目運(yùn)算符,用來比較兩個(gè)運(yùn)算分量的大小,運(yùn)算結(jié)果為邏輯型值true或false(它們分別對(duì)應(yīng)著整數(shù)1和0)由一個(gè)關(guān)系運(yùn)算符連接前后兩個(gè)數(shù)值表達(dá)式構(gòu)成的式子稱為關(guān)系表達(dá)式,簡稱關(guān)系式。當(dāng)一個(gè)關(guān)系式成立時(shí),則計(jì)算結(jié)果為邏輯值真(true),否則為邏輯值假(false)。關(guān)系運(yùn)算符的使用格式為:<運(yùn)算分量><關(guān)系運(yùn)算符><運(yùn)算分量>542.4.6邏輯運(yùn)算符和邏輯表達(dá)式C++語言提供了三種邏輯運(yùn)算符:!(邏輯非)、&&(邏輯與)、||(邏輯或)其中,!為單目運(yùn)算符,&&和||為雙目運(yùn)算符。邏輯運(yùn)算符的使用格式為:<邏輯運(yùn)算符!><運(yùn)算分量><運(yùn)算分量><邏輯運(yùn)算符&&或||><運(yùn)算分量>在進(jìn)行邏輯運(yùn)算操作時(shí),要注意:當(dāng)<運(yùn)算分量>不是邏輯型時(shí),一切以0值自動(dòng)轉(zhuǎn)換為false(假),一切非0值自動(dòng)轉(zhuǎn)換為true(真)。在輸出一個(gè)邏輯值時(shí),如不進(jìn)行特殊的格式控制,true輸出為1,false輸出為0。55例如下面語句段:inta=1,b=2;cout<<!a<<"-----"<<!(a-b)<<endl;cout<<a&&b<<"-----"<<a&&(a-1)<<endl;cout<<a||b<<"-----"<<a||(b-2)<<endl;輸出結(jié)果為:0-----01-----01-----1562.4.6邏輯運(yùn)算符和邏輯表達(dá)式邏輯非是對(duì)運(yùn)算分量的值取反,若運(yùn)算分量的值為true(或非0),則運(yùn)算結(jié)果為false,若運(yùn)算分量的值為false(或0),則運(yùn)算結(jié)果為true邏輯與的結(jié)果是當(dāng)兩個(gè)運(yùn)算分量的值都為true(或非0)時(shí),其值為true,否則為false邏輯或的結(jié)果是當(dāng)兩個(gè)運(yùn)算分量的值都為false(或0)時(shí),其值為false,否則為true57ab!aa&&ba||bfalse(0)false(0)truefalsefalsefalse(0)true(非0)truefalsetruetrue(非0)false(0)falsefalsetruetrue(非0)true(非0)falsetruetrue2.4.6邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算的運(yùn)算分量是邏輯型數(shù)據(jù)邏輯常量、邏輯變量、關(guān)系表達(dá)式等都是邏輯型數(shù)據(jù)由邏輯型數(shù)據(jù)和邏輯運(yùn)算符連接而成的式子稱為邏輯表達(dá)式,簡稱邏輯式。一個(gè)數(shù)值表達(dá)式也可以作為一個(gè)邏輯型數(shù)據(jù)使用,當(dāng)值為0時(shí)則認(rèn)為是邏輯值false,當(dāng)值為非0時(shí)則認(rèn)為是邏輯值true例如,在下面各表達(dá)式中,如果int型變量x的值為2,double型變量y的值為1.25,則:x>0&&y>0 //即1&&1,表達(dá)式的值為1x&&false //即1&&0,表達(dá)式的值為0x<-10||x>10 //即0||1,表達(dá)式的值為1x++!=3||y //即0||1,表達(dá)式的值為1582.4.6邏輯運(yùn)算符和邏輯表達(dá)式2.4.7位運(yùn)算C++提供了六種位運(yùn)算符:雙目位運(yùn)算符:&(按位與)、|(按位或)、^(按位異或)、>>(按位右移)、<<(按位左移)單目位運(yùn)算符:~(按位取反)位運(yùn)算符的使用格式為:<運(yùn)算分量><雙目運(yùn)算符&、|、^、>>或<<><運(yùn)算分量><單目運(yùn)算符~><運(yùn)算分量>592.4.7位運(yùn)算“&”是按位與運(yùn)算符,它將兩個(gè)運(yùn)算分量的對(duì)應(yīng)二進(jìn)制位進(jìn)行與操作。其中,0和0與得0,0和1與得0,1和0與得0,1和1與得1?!皘”是按位或運(yùn)算符,它將兩個(gè)運(yùn)算分量的對(duì)應(yīng)二進(jìn)制位進(jìn)行或操作。其中,0和0或得0,0和1或得1,1和0或得1,1和1或得1?!癪”是按位異或運(yùn)算符,它將兩個(gè)運(yùn)算分量的對(duì)應(yīng)二進(jìn)制位進(jìn)行異或操作。其中,0和0異或得0,0和1異或得1,1和0異或得1,1和1異或得0?!?gt;>”是按位右移運(yùn)算符,由于右移的位數(shù)為右邊運(yùn)算分量的值,所以右邊運(yùn)算分量的值必須是一個(gè)整數(shù)。602.4.7位運(yùn)算“<<”是按位左移運(yùn)算符,由于左移的位數(shù)為右邊運(yùn)算分量的值,所以右邊運(yùn)算分量的值必須是一個(gè)整數(shù)?!皛”是按位取反運(yùn)算符,它將運(yùn)算分量的對(duì)應(yīng)二進(jìn)制數(shù)的每一位進(jìn)行取反操作。其中,0取反得1,1取反得0。612.4.7位運(yùn)算例如,在下面各表達(dá)式中,如果char型變量x的二進(jìn)制值為00011000(即十進(jìn)制數(shù)24),char型變量y的二進(jìn)制值為00100100(即十進(jìn)制數(shù)36),則:x<<2 //表達(dá)式的二進(jìn)制值為01100000y>>3 //表達(dá)式的二進(jìn)制值為00000100~x //表達(dá)式的二進(jìn)制值為11100111x&y //表達(dá)式的二進(jìn)制值為00000000x|y //表達(dá)式的二進(jìn)制值為00111100x^44 //表達(dá)式的二進(jìn)制值為00110100622.4.8其它運(yùn)算條件運(yùn)算符條件運(yùn)算是C++中唯一的三目運(yùn)算,與其對(duì)應(yīng)的運(yùn)算符?:稱為條件運(yùn)算符。條件運(yùn)算符的使用格式為:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>當(dāng)計(jì)算由條件運(yùn)算符構(gòu)成的表達(dá)式時(shí),首先計(jì)算<表達(dá)式1>,若其值非0,則計(jì)算出<表達(dá)式2>的值,并用這個(gè)值作為整個(gè)表達(dá)式的值;若<表達(dá)式1>的值為0,則計(jì)算出<表達(dá)式3>的值,并用這個(gè)值作為整個(gè)表達(dá)式的值。例如://若a>b為true則將a的值賦給x,否則將b的值賦給xx=a>b?a:b //若cnt的值為true(或非0)則輸出“nonzero”,否則輸出“zero”cout<<(cnt?"nonzero":"zero")632.4.8其它運(yùn)算逗號(hào)運(yùn)算符C++中使用逗號(hào)運(yùn)算符指明對(duì)多個(gè)表達(dá)式進(jìn)行順序求值。逗號(hào)運(yùn)算符的使用格式為:<表達(dá)式1>,<表達(dá)式2>,......<表達(dá)式n>其中,每個(gè)逗號(hào)都稱為逗號(hào)運(yùn)算符,整個(gè)式子稱為逗號(hào)表達(dá)式。上述逗號(hào)表達(dá)式的求值步驟為:從左向右依次計(jì)算<表達(dá)式1>、<表達(dá)式2>...<表達(dá)式n>的值;將<表達(dá)式n>(即最右端的表達(dá)式)的值作為整個(gè)逗號(hào)表達(dá)式的值。例如,若int型變量x、y和t都已進(jìn)行過聲明,則:y=(t=x,x+=1,t)是一個(gè)賦值表達(dá)式,賦值運(yùn)算符的右運(yùn)算分量是一個(gè)逗號(hào)表達(dá)式。計(jì)算該逗號(hào)表達(dá)式時(shí),首先將x的值賦給t,接著將x增1,最后將t的值作為整個(gè)逗號(hào)表達(dá)式的值642.4.8其它運(yùn)算sizeof運(yùn)算符使用運(yùn)算符sizeof可以進(jìn)行字長提取操作,因此sizeof運(yùn)算符又稱為字長提取符,它的使用格式為:sizeof(<運(yùn)算分量>)其中,sizeof為關(guān)鍵字;<運(yùn)算分量>既可以是一個(gè)類型名,也可以是一個(gè)變量名。字長提取運(yùn)算的結(jié)果為一個(gè)整數(shù),表示類型或變量的字節(jié)長度。例如,a\b都是int型變量,則:sizeof(a) //表達(dá)式的值為4sizeof(b) //表達(dá)式的值為4sizeof(int) //表達(dá)式的值為4sizeof(char) //表達(dá)式的值為1注意:得出上述結(jié)果的前提條件是,假設(shè)char型和int型變量在內(nèi)存中分別占用1個(gè)和4個(gè)字節(jié),因此在不同的機(jī)器系統(tǒng)上可能得到不同的結(jié)果。652.4.8其它運(yùn)算圓括號(hào)運(yùn)算符圓括號(hào)用于函數(shù)調(diào)用。其格式為:<函數(shù)名>(<實(shí)參表>),例如,sqrt(2),strcpy(d,s)圓括號(hào)用于強(qiáng)制類型轉(zhuǎn)換。其格式為:(<類型名>)<表達(dá)式>例如,inta=1,b=3;cout<<a/b<<“-----“<<(double)a/b
<<endl;圓括號(hào)用于類型構(gòu)造。其格式為:<類型名>(<表達(dá)式>)例如,doubled=3.25;intn=int(d); //將double型變量d構(gòu)造為int型charc=char(65); //將65構(gòu)造為char型變量662.4.9優(yōu)先級(jí)和結(jié)合性C++語言為每一種運(yùn)算符規(guī)定了相應(yīng)的優(yōu)先級(jí),以確定它們在表達(dá)式中的運(yùn)算順序例如,表達(dá)式6+3*4/2-2將按照如下順序進(jìn)行計(jì)算:(1)3*4
12(2)12/2
6(3)6+6
12(4)12-2
10該表達(dá)式的最終結(jié)果值為10,這表明在C++中運(yùn)算符*(乘)和/(除)的優(yōu)先級(jí)高于運(yùn)算符+(加)和-(減)的優(yōu)先級(jí),因此先計(jì)算乘除法,后計(jì)算加減法;另一方面,運(yùn)算符*(乘)和/(除)的優(yōu)先級(jí)相同(運(yùn)算符+、-的優(yōu)先級(jí)也相同),所以它們將按照從左向右的順序計(jì)算。672.4.9優(yōu)先級(jí)和結(jié)合性使用圓括號(hào)“(”和“)”將子表達(dá)式括起來,可以改變默認(rèn)的運(yùn)算符優(yōu)先級(jí)。在對(duì)一個(gè)表達(dá)式求值時(shí),首先要計(jì)算所有括號(hào)中的子表達(dá)式,再用計(jì)算的結(jié)果代替每個(gè)子表達(dá)式,然后繼續(xù)計(jì)算。內(nèi)層括號(hào)先于外層括號(hào)計(jì)算。例如:4*5+7*2 //表達(dá)式的值為344*(5+7*2) //表達(dá)式的值為764*((5+7)*2) //表達(dá)式的值為96682.4.9優(yōu)先級(jí)和結(jié)合性運(yùn)算符不僅具有優(yōu)先級(jí),還具有結(jié)合性。當(dāng)優(yōu)先級(jí)相同的運(yùn)算符相鄰地出現(xiàn)在一個(gè)表達(dá)式中時(shí),是按照從左向右的順序進(jìn)行計(jì)算,還是按照從右向左的順序進(jìn)行計(jì)算,取決于運(yùn)算符的結(jié)合性。例如,算術(shù)運(yùn)算符是左結(jié)合的,因此下面的表達(dá)式將從左向右進(jìn)行計(jì)算:a+b–c+d //左結(jié)合即先把a(bǔ)和b相加,然后再減去c,最后加上d。又例如,賦值運(yùn)算符是右結(jié)合的,因此下面的表達(dá)式將從右向左進(jìn)行計(jì)算:a=b=c=d //右結(jié)合即先把d賦值給c,然后將結(jié)果賦值給b,最后將結(jié)果賦值給a。692.4.9優(yōu)先級(jí)和結(jié)合性根據(jù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,可以將表達(dá)式的計(jì)算順序規(guī)則總結(jié)為以下三條:優(yōu)先計(jì)算帶有括號(hào)的子表達(dá)式在沒有括號(hào)的部分,依照運(yùn)算符優(yōu)先級(jí),由高到低進(jìn)行計(jì)算具有相同優(yōu)先級(jí)的運(yùn)算符,按照結(jié)合性規(guī)定,依次進(jìn)行計(jì)算702.4.9優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí)運(yùn)算符功能用法結(jié)合性1::
類域class_name::member左結(jié)合::
全局域
::name2.
成員選擇
object.member左結(jié)合->
成員選擇
pointer->member[]
下標(biāo)
pointer[expr]()
函數(shù)調(diào)用expr(expr_list)()
類型構(gòu)造type(expr_list)++
后綴增量lvalue++右結(jié)合--
后綴減量lvalue--71
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨國公司出口業(yè)務(wù)委托管理三方合同
- 倉儲(chǔ)物流場地租賃及一體化服務(wù)合同
- 貝類養(yǎng)殖產(chǎn)業(yè)技術(shù)評(píng)價(jià)合同
- 碑刻與政治史研究合同
- 疏港工程拆除與港口設(shè)施重建合同
- 成都寫字樓租賃合同示范文本
- 美術(shù)課件制作技能
- 美術(shù)外寫生課件
- 安全風(fēng)險(xiǎn)管控的內(nèi)容
- 檢驗(yàn)崗位的安全職責(zé)
- 加油站安全生產(chǎn)隱患排查治理制度
- 學(xué)科建設(shè)研討活動(dòng)方案
- 千川投手培訓(xùn)課件
- 廣東省佛山禪城區(qū)七校聯(lián)考2025屆七下英語期末預(yù)測試題含答案
- 佛山市2024-2025高一下期末-物理試卷
- 建設(shè)工程(更新)融資投資立項(xiàng)項(xiàng)目可行性研究報(bào)告(非常詳細(xì))
- Unit 3 Same or Different?Section A 課件 人教版英語八年級(jí)上冊
- 2025年廣東省高考語文試卷(含標(biāo)準(zhǔn)答案)
- DL∕T 5342-2018 110kV~750kV架空輸電線路鐵塔組立施工工藝導(dǎo)則
- (高清版)TDT 1056-2019 縣級(jí)國土資源調(diào)查生產(chǎn)成本定額
- 小學(xué)語文人教五年級(jí)上冊第七單元《四季之美》課件 市賽獲獎(jiǎng)
評(píng)論
0/150
提交評(píng)論