




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022-3-1312022-3-132 C+詞法與規(guī)則詞法與規(guī)則 C+程序的構(gòu)成程序的構(gòu)成 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 常量常量 變量變量 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式 數(shù)字字符:數(shù)字字符:09 英文字母:英文字母:az,AZ 特殊字符:特殊字符: ! # % & + - = / _(下劃線)(下劃線) “ ; . , : ? ( ) 不可印出字符:空白符(包括空格、換行和制表不可印出字符:空白符(包括空格、換行和制表符)。符)。2022-3-133 由字母或下劃線(或連字符)開(kāi)頭、后面由字母或下劃線(或連字符)開(kāi)頭、后面跟字母或數(shù)字或下劃線(或空串)組成的跟字母或數(shù)字或下劃線(或空串)組成的字符序列
2、,一般有效長(zhǎng)度是字符序列,一般有效長(zhǎng)度是8個(gè)字符(而個(gè)字符(而ANSI C標(biāo)準(zhǔn)規(guī)定標(biāo)準(zhǔn)規(guī)定31個(gè)字符),用來(lái)標(biāo)識(shí)個(gè)字符),用來(lái)標(biāo)識(shí)用戶定義的常量名、變量名、函數(shù)名、文用戶定義的常量名、變量名、函數(shù)名、文件名、數(shù)組名、數(shù)據(jù)類(lèi)型名和程序名等。件名、數(shù)組名、數(shù)據(jù)類(lèi)型名和程序名等。2022-3-134 關(guān)鍵字是具有特定含義,作為專(zhuān)用定義符關(guān)鍵字是具有特定含義,作為專(zhuān)用定義符的單詞,不允許另作他用。的單詞,不允許另作他用。 C+關(guān)鍵字見(jiàn)關(guān)鍵字見(jiàn)表表2-1。2022-3-1352022-3-136asm auto boolbreakcasecatchcharclass const const_castco
3、ntinuedefault delete dodoubledynamic_castelseenumexplicitexportexternfalsefloatforfriendgotoifinlineintlongmutablenewspace newoperatoroverloadprivateprotectedpublicregisterreinterpretcastreturnshortsignedsizeofstaticstatic_caststructswitchtemplatethisthrowtruetrytypedeftypeidtypenameunionunsignedvir
4、tualvoidvolatilewchar_twhile2022-3-137 運(yùn)算符是運(yùn)算符是C+語(yǔ)言實(shí)現(xiàn)算術(shù)、關(guān)系、邏輯等各種語(yǔ)言實(shí)現(xiàn)算術(shù)、關(guān)系、邏輯等各種運(yùn)算的符號(hào)。運(yùn)算的符號(hào)。 C+語(yǔ)言的分隔符主要是:空格、制表符和換行語(yǔ)言的分隔符主要是:空格、制表符和換行符。符。 字符串是由雙引號(hào)(非漢字雙引號(hào))括起來(lái)的字字符串是由雙引號(hào)(非漢字雙引號(hào))括起來(lái)的字符串。如符串。如” China”、 ” C+ Program”等。等。 2022-3-138 C+語(yǔ)言中常量包括實(shí)型常量(浮點(diǎn)常量)和整語(yǔ)言中常量包括實(shí)型常量(浮點(diǎn)常量)和整型常量(十進(jìn)制、八進(jìn)制、十六進(jìn)制常量)、字型常量(十進(jìn)制、八進(jìn)制、十
5、六進(jìn)制常量)、字符常量和字符串常量。符常量和字符串常量。 注釋是用來(lái)幫助閱讀、理解及維護(hù)程序。在編譯注釋是用來(lái)幫助閱讀、理解及維護(hù)程序。在編譯時(shí),注釋部分被忽略,不產(chǎn)生目標(biāo)代碼。時(shí),注釋部分被忽略,不產(chǎn)生目標(biāo)代碼。C+語(yǔ)語(yǔ)言提供兩種注釋方式:言提供兩種注釋方式: 一種是與一種是與C兼容的多行注釋?zhuān)眉嫒莸亩嘈凶⑨專(zhuān)?*和和*/分界。分界。 另一種是單行注釋?zhuān)粤硪环N是單行注釋?zhuān)浴?”開(kāi)頭的表明本行中開(kāi)頭的表明本行中“/”符號(hào)后的內(nèi)容是注釋。符號(hào)后的內(nèi)容是注釋。#include /預(yù)處理命令,包含標(biāo)準(zhǔn)庫(kù)頭文件預(yù)處理命令,包含標(biāo)準(zhǔn)庫(kù)頭文件iostream,它提供了標(biāo)準(zhǔn)輸入,它提供了標(biāo)準(zhǔn)輸入/輸
6、出流類(lèi)輸出流類(lèi),使得輸出流對(duì)象使得輸出流對(duì)象cout和輸入流對(duì)和輸入流對(duì)象象cin可以使用可以使用using namespace std; /使用使用C+的命名空間,的命名空間,C+標(biāo)準(zhǔn)庫(kù)標(biāo)準(zhǔn)庫(kù)中的類(lèi)和函數(shù)是在命名空間中的類(lèi)和函數(shù)是在命名空間std中聲明的中聲明的int main() coutb ) c=a-b; d=c*a; else c=a+b; d=c*b; 2022-3-13152022-3-1316 函數(shù)調(diào)用語(yǔ)句是由一次函數(shù)調(diào)用加一個(gè)分號(hào)而構(gòu)函數(shù)調(diào)用語(yǔ)句是由一次函數(shù)調(diào)用加一個(gè)分號(hào)而構(gòu)成的一個(gè)語(yǔ)句。成的一個(gè)語(yǔ)句。 例如:例如:max(x,y); 例如:例如:; 即只有分號(hào)即只有分號(hào)“;
7、”的語(yǔ)句,什么也不做。的語(yǔ)句,什么也不做。 例如:結(jié)構(gòu)體、共用體、類(lèi)類(lèi)型的聲明及定義例如:結(jié)構(gòu)體、共用體、類(lèi)類(lèi)型的聲明及定義 數(shù)學(xué)中的數(shù)據(jù)類(lèi)別數(shù)學(xué)中的數(shù)據(jù)類(lèi)別不同的性質(zhì)不同的性質(zhì)不同的運(yùn)算不同的運(yùn)算 計(jì)算機(jī)中的數(shù)據(jù)類(lèi)型計(jì)算機(jī)中的數(shù)據(jù)類(lèi)型不同的表示形式不同的表示形式不同的存儲(chǔ)空間不同的存儲(chǔ)空間不同的運(yùn)算不同的運(yùn)算2022-3-13172022-3-1318 C+數(shù)據(jù)類(lèi)型十分豐富,大體上可分為:數(shù)據(jù)類(lèi)型十分豐富,大體上可分為:基本類(lèi)型基本類(lèi)型空類(lèi)型空類(lèi)型構(gòu)造類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型指針類(lèi)型類(lèi)類(lèi)型類(lèi)類(lèi)型 如如圖圖2-1所示。所示。 2022-3-1319數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型基本類(lèi)型基本類(lèi)型空類(lèi)型(無(wú)值類(lèi)型)
8、空類(lèi)型(無(wú)值類(lèi)型)void構(gòu)造類(lèi)型構(gòu)造類(lèi)型類(lèi)類(lèi)型類(lèi)類(lèi)型class指針類(lèi)型指針類(lèi)型整型整型int實(shí)型(浮點(diǎn)型)實(shí)型(浮點(diǎn)型)字符型字符型邏輯型邏輯型bool結(jié)構(gòu)體類(lèi)型結(jié)構(gòu)體類(lèi)型struct數(shù)組類(lèi)型數(shù)組類(lèi)型枚舉類(lèi)型枚舉類(lèi)型enum共用體類(lèi)型共用體類(lèi)型union單精度型單精度型float雙精度型雙精度型double單字符型單字符型char寬字符型寬字符型w-char圖圖2-1 C+數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型2022-3-1320 基本數(shù)據(jù)類(lèi)型有基本數(shù)據(jù)類(lèi)型有4種:整型(種:整型(int)、浮點(diǎn)型)、浮點(diǎn)型(float和和double)、字符型()、字符型(char)、邏輯)、邏輯型(型(bool)。)。 整型
9、數(shù)整型數(shù)在計(jì)算機(jī)內(nèi)部一般采用定點(diǎn)表示法,用于在計(jì)算機(jī)內(nèi)部一般采用定點(diǎn)表示法,用于存儲(chǔ)整型量。(如存儲(chǔ)整型量。(如123,-7等),存儲(chǔ)整數(shù)的位等),存儲(chǔ)整數(shù)的位數(shù)依機(jī)器的不同而異。數(shù)依機(jī)器的不同而異。 浮點(diǎn)數(shù)浮點(diǎn)數(shù)和整數(shù)不同的地方是浮點(diǎn)數(shù)采用的是浮點(diǎn)和整數(shù)不同的地方是浮點(diǎn)數(shù)采用的是浮點(diǎn)表示法,也就是說(shuō),浮點(diǎn)數(shù)的小數(shù)點(diǎn)的位置不同,表示法,也就是說(shuō),浮點(diǎn)數(shù)的小數(shù)點(diǎn)的位置不同,給出的精度也不相同。給出的精度也不相同。 字符類(lèi)型字符類(lèi)型表示單個(gè)字符,一個(gè)字符用一個(gè)字節(jié)存表示單個(gè)字符,一個(gè)字符用一個(gè)字節(jié)存儲(chǔ)。儲(chǔ)。 邏輯類(lèi)型邏輯類(lèi)型,也稱(chēng)布爾類(lèi)型,表示表達(dá)式真和假。,也稱(chēng)布爾類(lèi)型,表示表達(dá)式真和假。類(lèi)型類(lèi)
10、型說(shuō)明說(shuō)明字節(jié)數(shù)字節(jié)數(shù)數(shù)值范圍數(shù)值范圍charchar字符型字符型1 1-128127-128127unsigned charunsigned char無(wú)符號(hào)字符型無(wú)符號(hào)字符型1 102550255int int 整型整型4 4-21474836482147483647-21474836482147483647unsigned intunsigned int無(wú)符號(hào)整型無(wú)符號(hào)整型4 40429496729504294967295signed intsigned int有符號(hào)整型有符號(hào)整型4 4-21474836482147483647-21474836482147483647short ints
11、hort int短整型短整型2 2-3276832767-3276832767unsigned short intunsigned short int 無(wú)符號(hào)短整型無(wú)符號(hào)短整型2 2065535065535signed short intsigned short int有符號(hào)短整型有符號(hào)短整型2 2-3276832767-3276832767long int long int 長(zhǎng)整型長(zhǎng)整型4 4-21474836482147483647-21474836482147483647signed long intsigned long int有符號(hào)長(zhǎng)整型有符號(hào)長(zhǎng)整型4 4-2147483648214
12、7483647-21474836482147483647unsigned long intunsigned long int 無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型4 40429496729504294967295floatfloat單精度型單精度型4 4-3.4-3.4* *10103838 3.4 3.4* *10103838doubledouble雙精度型雙精度型8 8-1.7-1.7* *1010308308 1.7 1.7* *1010308308long doublelong double長(zhǎng)雙精度型長(zhǎng)雙精度型1010-1.2-1.2* *1010493249321.21.2* *10104932
13、49322022-3-1321 C+沒(méi)有規(guī)定不同類(lèi)型的數(shù)占的字節(jié)數(shù)沒(méi)有規(guī)定不同類(lèi)型的數(shù)占的字節(jié)數(shù) 會(huì)因計(jì)算機(jī)系統(tǒng)、編譯器的不同而不同會(huì)因計(jì)算機(jī)系統(tǒng)、編譯器的不同而不同 可用可用sizeof()運(yùn)算符測(cè)試某類(lèi)型數(shù)所占()運(yùn)算符測(cè)試某類(lèi)型數(shù)所占字節(jié)數(shù)。例如:字節(jié)數(shù)。例如:coutsizeof(int)endl;/整型數(shù)的整型數(shù)的字節(jié)數(shù)字節(jié)數(shù)coutsizeof(short int)endl;coutsizeof(short)endl; ;/短整短整型的字節(jié)數(shù)型的字節(jié)數(shù)2022-3-1322 空類(lèi)型空類(lèi)型void用于顯式地說(shuō)明一個(gè)函數(shù)不返用于顯式地說(shuō)明一個(gè)函數(shù)不返回任何值?;厝魏沃怠?還可以說(shuō)明指向
14、還可以說(shuō)明指向void類(lèi)型的指針,說(shuō)明之類(lèi)型的指針,說(shuō)明之后,這個(gè)指針就可指向各種不同類(lèi)型的數(shù)后,這個(gè)指針就可指向各種不同類(lèi)型的數(shù)據(jù)對(duì)象。據(jù)對(duì)象。2022-3-1323 構(gòu)造類(lèi)型又稱(chēng)為組合類(lèi)型,它是由基本類(lèi)型按照構(gòu)造類(lèi)型又稱(chēng)為組合類(lèi)型,它是由基本類(lèi)型按照某種規(guī)則組合而成的。某種規(guī)則組合而成的。 數(shù)組:數(shù)組:是由具有相同數(shù)據(jù)類(lèi)型的元素組成的集合。是由具有相同數(shù)據(jù)類(lèi)型的元素組成的集合。 結(jié)構(gòu)體:結(jié)構(gòu)體:是由不同的數(shù)據(jù)類(lèi)型構(gòu)成的一種混合的數(shù)據(jù)是由不同的數(shù)據(jù)類(lèi)型構(gòu)成的一種混合的數(shù)據(jù)結(jié)構(gòu),構(gòu)成結(jié)構(gòu)體的成員的數(shù)據(jù)類(lèi)型一般不同,并且結(jié)構(gòu),構(gòu)成結(jié)構(gòu)體的成員的數(shù)據(jù)類(lèi)型一般不同,并且在內(nèi)存中分別占據(jù)不同的存儲(chǔ)單元
15、。在內(nèi)存中分別占據(jù)不同的存儲(chǔ)單元。 共用體:共用體:是類(lèi)似于結(jié)構(gòu)體的一種構(gòu)造類(lèi)型,與結(jié)構(gòu)體是類(lèi)似于結(jié)構(gòu)體的一種構(gòu)造類(lèi)型,與結(jié)構(gòu)體不同的是構(gòu)成共用體的數(shù)據(jù)成員共用同一段內(nèi)存單元不同的是構(gòu)成共用體的數(shù)據(jù)成員共用同一段內(nèi)存單元。 枚舉:枚舉:是將變量的值一一列舉出來(lái),變量的值只限于是將變量的值一一列舉出來(lái),變量的值只限于列舉出來(lái)的值的范圍內(nèi)。列舉出來(lái)的值的范圍內(nèi)。 2022-3-1324 指針類(lèi)型變量用于存儲(chǔ)另一變量的地址,指針類(lèi)型變量用于存儲(chǔ)另一變量的地址,而不能用來(lái)存放基本類(lèi)型的數(shù)據(jù)。它在內(nèi)而不能用來(lái)存放基本類(lèi)型的數(shù)據(jù)。它在內(nèi)存中占據(jù)一個(gè)存儲(chǔ)單元。存中占據(jù)一個(gè)存儲(chǔ)單元。2022-3-1325 類(lèi)
16、是體現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的最基本特征類(lèi)是體現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的最基本特征,也是體現(xiàn),也是體現(xiàn)C+與與C最大的不同之處。最大的不同之處。 類(lèi)是一個(gè)數(shù)據(jù)類(lèi)型,它定義的是一種對(duì)象類(lèi)是一個(gè)數(shù)據(jù)類(lèi)型,它定義的是一種對(duì)象類(lèi)型,由數(shù)據(jù)和方法組成,描述了屬于該類(lèi)型,由數(shù)據(jù)和方法組成,描述了屬于該類(lèi)型的所有對(duì)象的性質(zhì)。類(lèi)型的所有對(duì)象的性質(zhì)。2022-3-13262022-3-1327 常量是在源程序中直接寫(xiě)明的數(shù)據(jù);常量是在源程序中直接寫(xiě)明的數(shù)據(jù); 其值在整個(gè)程序運(yùn)行期間不可改變。其值在整個(gè)程序運(yùn)行期間不可改變。 C+支持支持5種類(lèi)型的常量:浮點(diǎn)型、整型、種類(lèi)型的常量:浮點(diǎn)型、整型、字符型、布爾型和枚舉型。字符型
17、、布爾型和枚舉型。 常量具有類(lèi)型屬性,類(lèi)型決定了各種常量常量具有類(lèi)型屬性,類(lèi)型決定了各種常量在內(nèi)存中占據(jù)存儲(chǔ)空間的大小。在內(nèi)存中占據(jù)存儲(chǔ)空間的大小。 2022-3-1328 整型數(shù)據(jù)表示通常意義上的整數(shù),整型常量可以整型數(shù)據(jù)表示通常意義上的整數(shù),整型常量可以用十進(jìn)制、八進(jìn)制或十六進(jìn)制表示。用十進(jìn)制、八進(jìn)制或十六進(jìn)制表示。(1)十進(jìn)制常量十進(jìn)制常量是一個(gè)帶正負(fù)號(hào)的常數(shù)(默認(rèn)情況下為正數(shù)),如是一個(gè)帶正負(fù)號(hào)的常數(shù)(默認(rèn)情況下為正數(shù)),如+3,-7等。等。(2)八進(jìn)制常量八進(jìn)制常量由數(shù)字由數(shù)字0開(kāi)頭,其后由若干開(kāi)頭,其后由若干07的數(shù)字組成,如的數(shù)字組成,如037,0123等。等。(3)十六進(jìn)制常量
18、十六進(jìn)制常量以以0 x或或0X開(kāi)頭,其后由若干開(kāi)頭,其后由若干09的數(shù)字及的數(shù)字及AF(或?。ɑ蛐?xiě)寫(xiě)af)的字母組成,如)的字母組成,如0 x173,0 x3af。 2022-3-1329 整型常量可以后跟字母整型常量可以后跟字母l或或L表示表示long型(長(zhǎng)整型(長(zhǎng)整數(shù)),也可以跟數(shù)),也可以跟u或或U表示表示unsigned整數(shù)(無(wú)整數(shù)(無(wú)符號(hào)整數(shù)),如以下數(shù)字是合法的:符號(hào)整數(shù)),如以下數(shù)字是合法的:375u/無(wú)符號(hào)整數(shù)無(wú)符號(hào)整數(shù)12345UL/無(wú)符號(hào)長(zhǎng)整數(shù)無(wú)符號(hào)長(zhǎng)整數(shù)54321L/長(zhǎng)整數(shù)長(zhǎng)整數(shù) 13579ul/無(wú)符號(hào)長(zhǎng)整數(shù)無(wú)符號(hào)長(zhǎng)整數(shù)2022-3-1330 浮點(diǎn)數(shù)也稱(chēng)為實(shí)型數(shù)。只能以
19、十進(jìn)制形式表示。浮點(diǎn)數(shù)也稱(chēng)為實(shí)型數(shù)。只能以十進(jìn)制形式表示。共有兩種表示形式:小數(shù)表示法和指數(shù)表示法。共有兩種表示形式:小數(shù)表示法和指數(shù)表示法。(1)小數(shù)表示法小數(shù)表示法 使用這種表示形式時(shí),實(shí)型常量分為整數(shù)部分和小數(shù)部分。使用這種表示形式時(shí),實(shí)型常量分為整數(shù)部分和小數(shù)部分。其中的一部分可在實(shí)際使用時(shí)省略,如其中的一部分可在實(shí)際使用時(shí)省略,如10.2,.2,2.,等。但整數(shù)和小數(shù)部分不能同時(shí)省略。等。但整數(shù)和小數(shù)部分不能同時(shí)省略。(2)指數(shù)表示法指數(shù)表示法也稱(chēng)科學(xué)記數(shù)法,指數(shù)部分以也稱(chēng)科學(xué)記數(shù)法,指數(shù)部分以E或或e開(kāi)始,而且必須是整開(kāi)始,而且必須是整數(shù)。如果浮點(diǎn)數(shù)采用指數(shù)表示法,則數(shù)。如果浮點(diǎn)數(shù)
20、采用指數(shù)表示法,則E或或e的兩邊都至少的兩邊都至少要有一位數(shù)。如以下數(shù)是合法的:要有一位數(shù)。如以下數(shù)是合法的:1.2e20,-3.4e-2。 浮點(diǎn)常量默認(rèn)為浮點(diǎn)常量默認(rèn)為double型,如果后綴型,如果后綴F(或(或f)可)可以使其成為以使其成為float型,例如:型,例如:12.3f。2022-3-1331(1)字符常量)字符常量C+中的字符常量通常是用單引號(hào)括起的一個(gè)字符。在中的字符常量通常是用單引號(hào)括起的一個(gè)字符。在內(nèi)存中,字符數(shù)據(jù)以內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),如字符碼存儲(chǔ),如字符a的的ASCII碼為碼為97。字符常量包括兩類(lèi),一類(lèi)是可顯示字符,。字符常量包括兩類(lèi),一類(lèi)是可顯示字
21、符,如字母、數(shù)字和一些符號(hào)如字母、數(shù)字和一些符號(hào) 、+等,另一類(lèi)是不可等,另一類(lèi)是不可顯示字符常量,如顯示字符常量,如ASCII碼為碼為13的字符表示回車(chē)。的字符表示回車(chē)。(2)轉(zhuǎn)義字符)轉(zhuǎn)義字符轉(zhuǎn)義字符是特殊的字符常量,表示時(shí)一般以轉(zhuǎn)義字符轉(zhuǎn)義字符是特殊的字符常量,表示時(shí)一般以轉(zhuǎn)義字符開(kāi)始,后跟不同的字符表示不同的特殊字符,開(kāi)始,后跟不同的字符表示不同的特殊字符,表表2-2列出列出了常用的特殊字符。了常用的特殊字符。 2022-3-13322022-3-1333 字符串常量是由一對(duì)雙引號(hào)括起來(lái)的零個(gè)或多個(gè)字符序列。字符串常量是由一對(duì)雙引號(hào)括起來(lái)的零個(gè)或多個(gè)字符序列。 字符串可以寫(xiě)在多行上,不
22、過(guò)在這種情況下必須用反斜線字符串可以寫(xiě)在多行上,不過(guò)在這種情況下必須用反斜線表示下一行字符是這一行字符的延續(xù)。表示下一行字符是這一行字符的延續(xù)。 字符串常量實(shí)際上是一個(gè)字符數(shù)組,組成數(shù)組的字符除顯字符串常量實(shí)際上是一個(gè)字符數(shù)組,組成數(shù)組的字符除顯式給出的外,還包括字符結(jié)尾處標(biāo)識(shí)字符串結(jié)束的符號(hào)式給出的外,還包括字符結(jié)尾處標(biāo)識(shí)字符串結(jié)束的符號(hào)0。 例如:例如:2022-3-1334 表示表示“真真”,“假假”這樣判斷的結(jié)果這樣判斷的結(jié)果 取值:取值: true,表示,表示“真真” false,表示,表示“假假” 存儲(chǔ)存儲(chǔ) true,存的是,存的是1 false,存的是,存的是0 非非0數(shù)值,當(dāng)邏
23、輯值相當(dāng)于數(shù)值,當(dāng)邏輯值相當(dāng)于true 數(shù)值數(shù)值0,當(dāng)邏輯值相當(dāng)于,當(dāng)邏輯值相當(dāng)于fasle 邏輯型數(shù)存放的實(shí)際也是整數(shù),可以進(jìn)行數(shù)學(xué)運(yùn)邏輯型數(shù)存放的實(shí)際也是整數(shù),可以進(jìn)行數(shù)學(xué)運(yùn)算算 枚舉常量可以通過(guò)建立枚舉類(lèi)型來(lái)定義。枚舉常量可以通過(guò)建立枚舉類(lèi)型來(lái)定義。 枚舉類(lèi)型是一種用戶自定義數(shù)據(jù)類(lèi)型。在聲明枚舉類(lèi)型時(shí)枚舉類(lèi)型是一種用戶自定義數(shù)據(jù)類(lèi)型。在聲明枚舉類(lèi)型時(shí),需要把常量的值一一列舉出來(lái),形式如下:,需要把常量的值一一列舉出來(lái),形式如下: enum 枚舉類(lèi)型名枚舉類(lèi)型名 常量值常量值1 ,常量值,常量值2 ,常量值,常量值n; 例如:聲明一個(gè)名為例如:聲明一個(gè)名為color的枚舉類(lèi)型:的枚舉類(lèi)型:
24、 enum colorRed,Green,Blue,White,Black; 枚舉常量是一種符號(hào)常量。枚舉常量是一種符號(hào)常量。Red,Green等是符號(hào)常量等是符號(hào)常量,它們表示各個(gè)枚舉值,在內(nèi)存中表示為整型數(shù)。如果沒(méi),它們表示各個(gè)枚舉值,在內(nèi)存中表示為整型數(shù)。如果沒(méi)有專(zhuān)門(mén)指定,第一個(gè)符號(hào)常量的枚舉值就是有專(zhuān)門(mén)指定,第一個(gè)符號(hào)常量的枚舉值就是0,其他枚舉,其他枚舉值依次為值依次為1,2,3。所以,。所以,C+自動(dòng)給自動(dòng)給Red賦賦0,Green賦賦1,等等。,等等。 2022-3-13352022-3-1336 變量是在程序執(zhí)行中其值可以變化的量。變量是在程序執(zhí)行中其值可以變化的量。 變量有三
25、個(gè)要素:名字、類(lèi)型和值。變量有三個(gè)要素:名字、類(lèi)型和值。 變量名的命名要遵守以下規(guī)則:變量名的命名要遵守以下規(guī)則: 不能是不能是C+保留關(guān)鍵字。保留關(guān)鍵字。 第一個(gè)字符必須是字母或下劃線,中間不能有空格。第一個(gè)字符必須是字母或下劃線,中間不能有空格。 變量名除了使用變量名除了使用26個(gè)英文大小寫(xiě)字母和數(shù)字外,只能個(gè)英文大小寫(xiě)字母和數(shù)字外,只能使用下劃線。使用下劃線。 c+雖然未對(duì)變量名的長(zhǎng)度進(jìn)行限制,但它受使用的雖然未對(duì)變量名的長(zhǎng)度進(jìn)行限制,但它受使用的編譯系統(tǒng)的制約。一般不要超過(guò)編譯系統(tǒng)的制約。一般不要超過(guò)31個(gè)字符。個(gè)字符。 變量名不要與變量名不要與C+中的庫(kù)函數(shù)名、類(lèi)名和對(duì)象名相同中的庫(kù)
26、函數(shù)名、類(lèi)名和對(duì)象名相同。 例如,下列變量名是合法的變量名:例如,下列變量名是合法的變量名:a123 c3b file_1 2022-3-13372022-3-1338 變量在使用前必須先定義,指出其數(shù)據(jù)類(lèi)變量在使用前必須先定義,指出其數(shù)據(jù)類(lèi)型。型。 通過(guò)類(lèi)型定義,變量被分配固定的存儲(chǔ)空通過(guò)類(lèi)型定義,變量被分配固定的存儲(chǔ)空間,直到程序結(jié)束時(shí)存儲(chǔ)空間被釋放。間,直到程序結(jié)束時(shí)存儲(chǔ)空間被釋放。 變量的操作受類(lèi)型控制,如整型變量與浮變量的操作受類(lèi)型控制,如整型變量與浮點(diǎn)型變量的操作是不同的。點(diǎn)型變量的操作是不同的。 與變量有關(guān)的有兩個(gè)值:一個(gè)是變量所表示的數(shù)與變量有關(guān)的有兩個(gè)值:一個(gè)是變量所表示的數(shù)
27、據(jù)值,另一個(gè)是變量的地址值。據(jù)值,另一個(gè)是變量的地址值。 例如:例如: char c; /定義一個(gè)變量,名字為定義一個(gè)變量,名字為c c= a; /給變量給變量c賦值,值為賦值,值為a 說(shuō)明:說(shuō)明:(1)值)值a便是存放在變量便是存放在變量c的內(nèi)存地址中的值的內(nèi)存地址中的值2022-3-13392022-3-1340(2)實(shí)際上內(nèi)存中存放的是字符)實(shí)際上內(nèi)存中存放的是字符a的的ASCII碼值碼值,以整數(shù)表示,所以,以整數(shù)表示,所以C+中整型數(shù)據(jù)和字符型數(shù)中整型數(shù)據(jù)和字符型數(shù)據(jù)之間可以相互賦值,但要注意其表示的合理范據(jù)之間可以相互賦值,但要注意其表示的合理范圍。圍。 例如:下面賦值操作是正確的。
28、例如:下面賦值操作是正確的。 int a=x; char ch=41; 變量被定義以后,它就在內(nèi)存中對(duì)應(yīng)著一個(gè)內(nèi)存變量被定義以后,它就在內(nèi)存中對(duì)應(yīng)著一個(gè)內(nèi)存地址值,在地址值,在C+中許多操作是針對(duì)變量的地址進(jìn)中許多操作是針對(duì)變量的地址進(jìn)行的,在指針類(lèi)型一章將詳細(xì)介紹。行的,在指針類(lèi)型一章將詳細(xì)介紹。2022-3-1341#include using namespace std;int main( ) int a; char ch; for (ch=a ;ch=z;ch+) a=ch; couta,; coutendl; return 0; 程序輸出什么結(jié)果?程序輸出什么結(jié)果?2022-3-13
29、42 在在C+中,任何一個(gè)變量在被引用之前必須定義。中,任何一個(gè)變量在被引用之前必須定義。C+中變量可以在程序中隨時(shí)定義,不必集中在中變量可以在程序中隨時(shí)定義,不必集中在程序之前。程序之前。 定義格式:定義格式: 類(lèi)型類(lèi)型變量名表變量名表; 當(dāng)有多個(gè)變量時(shí),其間用逗號(hào)隔開(kāi)。例如:當(dāng)有多個(gè)變量時(shí),其間用逗號(hào)隔開(kāi)。例如: int i,j,k; float x,y,z; char c1,c2,c3; 注意:在同一個(gè)程序塊中不允許定義同名變量,注意:在同一個(gè)程序塊中不允許定義同名變量,即不允許重復(fù)定義一個(gè)變量。即不允許重復(fù)定義一個(gè)變量。2022-3-1343 變量初始化一般采用兩種方式。變量初始化一般
30、采用兩種方式。 第一種方式是在定義變量時(shí)可以給變量賦一個(gè)初第一種方式是在定義變量時(shí)可以給變量賦一個(gè)初值值,例如:,例如:int a=3;float b1,b2=3.4,b3=5.6;const int c=5; 第二種方式是先定義變量,然后通過(guò)賦值語(yǔ)句使第二種方式是先定義變量,然后通過(guò)賦值語(yǔ)句使變量初始化變量初始化,例如:,例如:int a;a=3; 定義變量時(shí),如果加上關(guān)鍵字定義變量時(shí),如果加上關(guān)鍵字const,則變量的值在程序,則變量的值在程序運(yùn)行期間不能改變,這種變量稱(chēng)為常變量(運(yùn)行期間不能改變,這種變量稱(chēng)為常變量(constant variable),類(lèi)似于),類(lèi)似于C中的符號(hào)常量。中
31、的符號(hào)常量。 例如:例如: const int a=3; /a的值始終為的值始終為3,不能再改變,不能再改變 例如:例如: const int a; a=3; /常變量不能被賦值常變量不能被賦值 例如:例如: const int b=3+6*2; /可以用表達(dá)式對(duì)常變量初可以用表達(dá)式對(duì)常變量初始化始化2022-3-1344 在程序中,表達(dá)式是計(jì)算求值的基本單位,它在程序中,表達(dá)式是計(jì)算求值的基本單位,它是由運(yùn)算符和運(yùn)算數(shù)組成的式子。運(yùn)算符是表是由運(yùn)算符和運(yùn)算數(shù)組成的式子。運(yùn)算符是表示進(jìn)行某種運(yùn)算的符號(hào)。運(yùn)算數(shù)包含常量、變示進(jìn)行某種運(yùn)算的符號(hào)。運(yùn)算數(shù)包含常量、變量和函數(shù)等。量和函數(shù)等。 C+語(yǔ)言
32、的運(yùn)算符按其在表達(dá)式中與運(yùn)算對(duì)語(yǔ)言的運(yùn)算符按其在表達(dá)式中與運(yùn)算對(duì)象的關(guān)系(連接運(yùn)算對(duì)象的個(gè)數(shù))可分為:象的關(guān)系(連接運(yùn)算對(duì)象的個(gè)數(shù))可分為:?jiǎn)文窟\(yùn)算(一元運(yùn)算符,只需一個(gè)操作數(shù))單目運(yùn)算(一元運(yùn)算符,只需一個(gè)操作數(shù))雙目運(yùn)算(二元運(yùn)算符,需兩個(gè)操作數(shù))雙目運(yùn)算(二元運(yùn)算符,需兩個(gè)操作數(shù))三目運(yùn)算(三元運(yùn)算符,需三個(gè)操作數(shù))三目運(yùn)算(三元運(yùn)算符,需三個(gè)操作數(shù)) 2022-3-13452022-3-1346算術(shù)運(yùn)算符算術(shù)運(yùn)算符 + - * / %關(guān)系運(yùn)算符關(guān)系運(yùn)算符 = = !=邏輯運(yùn)算符邏輯運(yùn)算符 ! & |位運(yùn)算符位運(yùn)算符 | &自增自減運(yùn)算符自增自減運(yùn)算符 + -賦值運(yùn)算符賦值運(yùn)算符 = 及
33、其擴(kuò)展(及其擴(kuò)展(+= -= *= /= %= 等)等)條件運(yùn)算符條件運(yùn)算符 ? :指針運(yùn)算符指針運(yùn)算符 * 引用運(yùn)算符和地址運(yùn)算符引用運(yùn)算符和地址運(yùn)算符&逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 ,成員運(yùn)算符成員運(yùn)算符 . 指向成員的運(yùn)算符指向成員的運(yùn)算符 -函數(shù)調(diào)用運(yùn)算符()函數(shù)調(diào)用運(yùn)算符()下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符作用域運(yùn)算符作用域運(yùn)算符:求字節(jié)運(yùn)算符求字節(jié)運(yùn)算符 sizeof強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符:(強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符:(type) 動(dòng)態(tài)申請(qǐng)內(nèi)存運(yùn)算符:動(dòng)態(tài)申請(qǐng)內(nèi)存運(yùn)算符:new釋放內(nèi)存運(yùn)算符:釋放內(nèi)存運(yùn)算符:delete2022-3-1347 單目運(yùn)算符:(取負(fù)),(取正)單目運(yùn)算符:(取負(fù)),(取正) 單目運(yùn)
34、算符比雙目運(yùn)算符優(yōu)先級(jí)高。單目運(yùn)算符比雙目運(yùn)算符優(yōu)先級(jí)高。 雙目運(yùn)算符:、雙目運(yùn)算符:、(取、(取余)余) 在這五個(gè)運(yùn)算符中,和的優(yōu)先級(jí)比在這五個(gè)運(yùn)算符中,和的優(yōu)先級(jí)比,-要高。另外,只適用于要高。另外,只適用于int型。型。/運(yùn)運(yùn)算符對(duì)于實(shí)型做除法運(yùn)算,結(jié)果為小數(shù);算符對(duì)于實(shí)型做除法運(yùn)算,結(jié)果為小數(shù);對(duì)于整型做除法運(yùn)算,結(jié)果為整數(shù)。對(duì)于整型做除法運(yùn)算,結(jié)果為整數(shù)。2022-3-1348int a,b=39;a=b/2; 結(jié)果結(jié)果a等于等于19。double x;int c=37;x=c/4.0; 結(jié)果為結(jié)果為9.25 +: 自增運(yùn)算符,表示加。自增運(yùn)算符,表示加。 - - : 自減運(yùn)算符,表
35、示減。自減運(yùn)算符,表示減。 這兩個(gè)運(yùn)算符都是單目運(yùn)算符,且功能相近,只能將這類(lèi)這兩個(gè)運(yùn)算符都是單目運(yùn)算符,且功能相近,只能將這類(lèi)操作符應(yīng)用于變量而不能應(yīng)用于常量。例如:操作符應(yīng)用于變量而不能應(yīng)用于常量。例如: i=i+1;可使用:可使用: +i;或或 i+;替代替代 前一種方式稱(chēng)為前綴方式,后一種稱(chēng)為后綴方式,其結(jié)果前一種方式稱(chēng)為前綴方式,后一種稱(chēng)為后綴方式,其結(jié)果都是使都是使i加加1。 二者的區(qū)別是:前綴是先將操作數(shù)增二者的區(qū)別是:前綴是先將操作數(shù)增1(或減(或減1),然后),然后取操作數(shù)的新值參與表達(dá)式的運(yùn)算。后綴是先將操作數(shù)增取操作數(shù)的新值參與表達(dá)式的運(yùn)算。后綴是先將操作數(shù)增1(或減(或
36、減1)之前的值參與表達(dá)式的運(yùn)算,到表達(dá)式的值)之前的值參與表達(dá)式的運(yùn)算,到表達(dá)式的值被引用之后再做加被引用之后再做加1(或減(或減1)運(yùn)算。)運(yùn)算。2022-3-13492022-3-1350int x=0,y;y=x+ + x+; 運(yùn)算結(jié)果:運(yùn)算結(jié)果:y=?,x=?2022-3-1351 自增、自減運(yùn)算符有四種應(yīng)用格式:自增、自減運(yùn)算符有四種應(yīng)用格式:int a=3;b=a+; 等價(jià)于等價(jià)于 b=a;a=a+1;int a=3;b=a-; 等價(jià)于等價(jià)于 b=a;a=a-1;(運(yùn)算符后置用法,代表先使用變量,然后對(duì)變量增、減(運(yùn)算符后置用法,代表先使用變量,然后對(duì)變量增、減值)值)int a=
37、3;b=+a; 等價(jià)于等價(jià)于 a=a+1;b=a;int a=3;b=-a; 等價(jià)于等價(jià)于 a=a-1;b=a;(運(yùn)算符前置用法,代表先對(duì)變量增、減值,再使用變量)(運(yùn)算符前置用法,代表先對(duì)變量增、減值,再使用變量)2022-3-1352C+編譯器在處理時(shí)盡可能多的自左向右將運(yùn)編譯器在處理時(shí)盡可能多的自左向右將運(yùn)算符結(jié)合在一起。算符結(jié)合在一起。例如:例如:a+b表示為表示為(a+)+b而不是而不是a+(+b)。在調(diào)用函數(shù)時(shí),實(shí)參的求值順序一般為自右向在調(diào)用函數(shù)時(shí),實(shí)參的求值順序一般為自右向左。例如:左。例如:int a=1;couta+a+c 等價(jià)于等價(jià)于(a+b)ca!=bc 等價(jià)于等價(jià)于a
38、!=(bc) 由關(guān)系運(yùn)算符組成的關(guān)系表達(dá)式的值是邏輯型的由關(guān)系運(yùn)算符組成的關(guān)系表達(dá)式的值是邏輯型的,即,即bool 型。型。 在在C+中常常將邏輯真用非中常常將邏輯真用非0表示(一般為表示(一般為1),邏輯假用,邏輯假用0表示表示。2022-3-1354 邏輯運(yùn)算符:邏輯運(yùn)算符: !(邏輯非)?。ㄟ壿嫹牵?&(邏輯與),(邏輯與), |(邏輯或)(邏輯或) 優(yōu)先次序:優(yōu)先次序: 高高 低低 邏輯運(yùn)算結(jié)果類(lèi)型:邏輯運(yùn)算結(jié)果類(lèi)型:bool,值只能為,值只能為 true 或或 false 邏輯非(?。┦菃文窟\(yùn)算符,邏輯與(邏輯非(?。┦菃文窟\(yùn)算符,邏輯與(&)與邏輯或()與邏輯或(|)為雙目運(yùn)算符。
39、)為雙目運(yùn)算符。 “&”的運(yùn)算規(guī)則:兩側(cè)表達(dá)式都為真,結(jié)果為真;有的運(yùn)算規(guī)則:兩側(cè)表達(dá)式都為真,結(jié)果為真;有一側(cè)表達(dá)式為假,結(jié)果為假。一側(cè)表達(dá)式為假,結(jié)果為假。 “|”的運(yùn)算規(guī)則:兩側(cè)表達(dá)式都為假,結(jié)果為假;有一的運(yùn)算規(guī)則:兩側(cè)表達(dá)式都為假,結(jié)果為假;有一側(cè)表達(dá)式為真,結(jié)果為真。側(cè)表達(dá)式為真,結(jié)果為真。 邏輯運(yùn)算真值表如邏輯運(yùn)算真值表如表表2-3所示。所示。2022-3-13552022-3-1356aba&ba|b!a!b0000110非00110非000101非0非011002022-3-1357(1)賦值運(yùn)算符:)賦值運(yùn)算符:“=” 例如:例如:int i;i=3*(4+5); /i的值
40、變?yōu)榈闹底優(yōu)?7 表示將其右側(cè)的表達(dá)式求出結(jié)果,賦給其左側(cè)的變量。表示將其右側(cè)的表達(dá)式求出結(jié)果,賦給其左側(cè)的變量。(2)賦值運(yùn)算可進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換。賦值運(yùn)算的結(jié)果)賦值運(yùn)算可進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換。賦值運(yùn)算的結(jié)果是右側(cè)表達(dá)式的值,而結(jié)果類(lèi)型是左側(cè)變量的數(shù)據(jù)類(lèi)是右側(cè)表達(dá)式的值,而結(jié)果類(lèi)型是左側(cè)變量的數(shù)據(jù)類(lèi)型。例如:型。例如:int i=1.2*3; /結(jié)果為結(jié)果為3,而不是,而不是3.6 2022-3-1358(3)賦值運(yùn)算符的結(jié)合性是從右至左的,因此,)賦值運(yùn)算符的結(jié)合性是從右至左的,因此,C+程序中可以出現(xiàn)連續(xù)賦值的情況。例如,下面的賦值程序中可以出現(xiàn)連續(xù)賦值的情況。例如,下面的賦值是合法的:是合
41、法的:int i,j,k;i=j=k=10; /i,j,k都賦值為都賦值為10(4)復(fù)合賦值運(yùn)算符:)復(fù)合賦值運(yùn)算符:+=(加賦值),(加賦值),-=(減賦值),(減賦值),*=(乘賦值),(乘賦值),/=(除賦值),(除賦值),%=(求余賦值),(求余賦值), =(右移位賦值),(右移位賦值),&=(按位與賦值),(按位與賦值),=(按位異或賦值),(按位異或賦值), |=(按位或賦值)(按位或賦值) 2022-3-1359a+=b等價(jià)于等價(jià)于 a=a+ba-=b 等價(jià)于等價(jià)于 a=a-ba*=b 等價(jià)于等價(jià)于 a=a*ba/=b 等價(jià)于等價(jià)于 a=a/ba%=b 等價(jià)于等價(jià)于 a=a%ba
42、=b 等價(jià)于等價(jià)于 a=a=b 等價(jià)于等價(jià)于 a=ab a&=b 等價(jià)于等價(jià)于 a=a&ba=b 等價(jià)于等價(jià)于 a=aba|=b 等價(jià)于等價(jià)于 a=a|b 2022-3-1360 例如:例如: int a=12;a+=a; 表示:表示:a=(a+a)=(12+12)=24; 又如:又如:int a=12;a+=a-=a*=a; 表示:表示:a=a*a /a=12*12=144a=a-a /a=144-144=0a=a+a /a=0+0=0 是是C+中唯一的三目運(yùn)算符,其形式為:中唯一的三目運(yùn)算符,其形式為:表達(dá)式表達(dá)式1 ?表達(dá)式?表達(dá)式2 :表達(dá)式:表達(dá)式3 運(yùn)算方式為:先計(jì)算表達(dá)式運(yùn)算方式
43、為:先計(jì)算表達(dá)式1的值,如果其值為非的值,如果其值為非0(真(真),則表達(dá)式),則表達(dá)式2的值就是整個(gè)表達(dá)式的最終結(jié)果;否則表的值就是整個(gè)表達(dá)式的最終結(jié)果;否則表達(dá)式達(dá)式3的值就是整個(gè)表達(dá)式的值。的值就是整個(gè)表達(dá)式的值。 表達(dá)式表達(dá)式1是是bool類(lèi)型,表達(dá)式類(lèi)型,表達(dá)式2、3的類(lèi)型可以不同,條的類(lèi)型可以不同,條件表達(dá)式的最終類(lèi)型為件表達(dá)式的最終類(lèi)型為 2 和和 3 中較高的類(lèi)型。中較高的類(lèi)型。 例如:用條件運(yùn)算符定義求兩個(gè)數(shù)例如:用條件運(yùn)算符定義求兩個(gè)數(shù)a和和b的最大值。的最大值。 max=(ab)?a:b)2022-3-13612022-3-1362 例如:例如:ab?a:cd?c:d 相
44、當(dāng)于:相當(dāng)于:ab?a:(cd?c:d) 例如:例如:ab?a-b:b-a 相當(dāng)于:相當(dāng)于:(ab)?(a-b):(b-a) 2022-3-1363 格式:表達(dá)式格式:表達(dá)式1,表達(dá)式,表達(dá)式2,表達(dá)式,表達(dá)式n 求解順序及結(jié)果:求解順序及結(jié)果: 先求解表達(dá)式先求解表達(dá)式1,再求解表達(dá)式,再求解表達(dá)式2,最后求解表達(dá)式,最后求解表達(dá)式n的值的值 最終結(jié)果為表達(dá)式最終結(jié)果為表達(dá)式n的值的值 例如:例如: d1,d2,d3,d4 此處,此處,d1、d2、d3、d4都是一個(gè)表達(dá)式。整都是一個(gè)表達(dá)式。整個(gè)表達(dá)式的值由最后一個(gè)表達(dá)式的值個(gè)表達(dá)式的值由最后一個(gè)表達(dá)式的值d4決定。計(jì)決定。計(jì)算順序是從左至右
45、依次計(jì)算各個(gè)表達(dá)式的值,最算順序是從左至右依次計(jì)算各個(gè)表達(dá)式的值,最后計(jì)算的表達(dá)式的值和類(lèi)型便是整個(gè)表達(dá)式的值后計(jì)算的表達(dá)式的值和類(lèi)型便是整個(gè)表達(dá)式的值和類(lèi)型。和類(lèi)型。2022-3-1364 例如:例如:int a=1,b,c;a=(b=a+1,c=b+2,a=c+1)+a; 結(jié)果:結(jié)果:a=?,?,b=?,?,c=? 又如:又如:for (min=0,max=length-1;minmax;min+,max-) 循環(huán)初始時(shí),循環(huán)初始時(shí),min=0,max=length-1;循環(huán)條;循環(huán)條件是件是minmax;每循環(huán)一次,;每循環(huán)一次,min加加1,max減減1。 逗號(hào)運(yùn)算符的用途僅在于解決只
46、能出現(xiàn)一個(gè)表達(dá)式的逗號(hào)運(yùn)算符的用途僅在于解決只能出現(xiàn)一個(gè)表達(dá)式的地方卻要出現(xiàn)多個(gè)表達(dá)式的問(wèn)題。地方卻要出現(xiàn)多個(gè)表達(dá)式的問(wèn)題。(1)位()位(bit)是計(jì)算機(jī)中表示信息的最小單位,)是計(jì)算機(jī)中表示信息的最小單位,一般用一般用0和和1表示。一個(gè)字節(jié)在計(jì)算機(jī)中用表示。一個(gè)字節(jié)在計(jì)算機(jī)中用8個(gè)位個(gè)位表示。表示。C+語(yǔ)言需要將人們通常所習(xí)慣的十進(jìn)制語(yǔ)言需要將人們通常所習(xí)慣的十進(jìn)制數(shù)表示為二進(jìn)制、八進(jìn)制或十六進(jìn)制數(shù)來(lái)理解對(duì)數(shù)表示為二進(jìn)制、八進(jìn)制或十六進(jìn)制數(shù)來(lái)理解對(duì)位的操作。位的操作。C+中所有的位運(yùn)算符如下:中所有的位運(yùn)算符如下:(按位求反)(按位求反) (右移)(右移) &(按位與)(按位與)(按位異或
47、)(按位異或) |(按位或)(按位或) (2)位運(yùn)算符是對(duì)其操作數(shù)按其二進(jìn)制形式逐)位運(yùn)算符是對(duì)其操作數(shù)按其二進(jìn)制形式逐位進(jìn)行運(yùn)算,參加位運(yùn)算的操作數(shù)必須為整數(shù)。位進(jìn)行運(yùn)算,參加位運(yùn)算的操作數(shù)必須為整數(shù)。2022-3-1365 運(yùn)算規(guī)則:運(yùn)算規(guī)則: 將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯與操作將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯與操作 例如:例如: 用途:用途: 將某一位置將某一位置0,其他位不變。,其他位不變。例如:將例如:將char型變量型變量a的最低位置的最低位置0: a = a & 0 xfe; ;(0 xfe:1111 1110) 取指定位。取指定位。例如:有例如:有char c; int a;
48、取出取出a的低字節(jié),置于的低字節(jié),置于c中:中:c=a & 0 xff; (0 xff:1111 1111)2022-3-1366 運(yùn)算規(guī)則運(yùn)算規(guī)則將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯或操作將兩個(gè)運(yùn)算量的每一個(gè)位進(jìn)行邏輯或操作 例如:例如: 用途:用途:將某些位置將某些位置1,其他位不變。,其他位不變。例如:將例如:將 int 型變量型變量 a 的低字節(jié)置的低字節(jié)置 1 : a = a | 0 xff;2022-3-1367 運(yùn)算規(guī)則:運(yùn)算規(guī)則: 兩個(gè)操作數(shù)進(jìn)行異或:兩個(gè)操作數(shù)進(jìn)行異或:若對(duì)應(yīng)位相同,則結(jié)果該位為若對(duì)應(yīng)位相同,則結(jié)果該位為 0,若對(duì)應(yīng)位不同,則結(jié)果該位為若對(duì)應(yīng)位不同,則結(jié)果該位為 1
49、, 例如:計(jì)算例如:計(jì)算 071052 用途舉例:使特定位翻轉(zhuǎn)(與用途舉例:使特定位翻轉(zhuǎn)(與0異或保持原值,與異或保持原值,與1異或取反)異或取反) 例如:要使例如:要使 01111010 低四位翻轉(zhuǎn):低四位翻轉(zhuǎn):2022-3-1368 運(yùn)算規(guī)則:運(yùn)算規(guī)則:?jiǎn)文窟\(yùn)算符,對(duì)一個(gè)二進(jìn)制數(shù)按位取反。單目運(yùn)算符,對(duì)一個(gè)二進(jìn)制數(shù)按位取反。 例如:例如: 025:0000000000010101 025:11111111111010102022-3-1369 左移運(yùn)算(左移運(yùn)算()右移后:右移后:低位:舍棄低位:舍棄高位:高位: 無(wú)符號(hào)數(shù):補(bǔ)無(wú)符號(hào)數(shù):補(bǔ)0 有符號(hào)數(shù):補(bǔ)有符號(hào)數(shù):補(bǔ)“符號(hào)位符號(hào)位”2022
50、-3-13702022-3-1371(1)sizeof運(yùn)算符是單目運(yùn)算符,用于計(jì)算運(yùn)算對(duì)象運(yùn)算符是單目運(yùn)算符,用于計(jì)算運(yùn)算對(duì)象在內(nèi)存中所占字節(jié)的多少,它有兩種形式:在內(nèi)存中所占字節(jié)的多少,它有兩種形式:sizeof (類(lèi)型標(biāo)識(shí)符);(類(lèi)型標(biāo)識(shí)符);sizeof 表達(dá)式;表達(dá)式;(2)sizeof可以接受的類(lèi)型標(biāo)識(shí)符很多,如可以接受的類(lèi)型標(biāo)識(shí)符很多,如sizeof(int)表示求整型數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)。)表示求整型數(shù)據(jù)在內(nèi)存中所占字節(jié)數(shù)。 例如:例如:int a,則,則sizeof(a)表示求變量)表示求變量a在內(nèi)在內(nèi)存中所占字節(jié)數(shù)。存中所占字節(jié)數(shù)。例如:例如:int a10,則,則size
51、of(a)表示求數(shù)組)表示求數(shù)組a在內(nèi)存中所占字節(jié)數(shù)。在內(nèi)存中所占字節(jié)數(shù)。 2022-3-1372(1)優(yōu)先級(jí))優(yōu)先級(jí) 每種運(yùn)算符都有一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)是用來(lái)標(biāo)志運(yùn)算符每種運(yùn)算符都有一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)是用來(lái)標(biāo)志運(yùn)算符在表達(dá)式中的運(yùn)算順序的。優(yōu)先級(jí)高的先做運(yùn)算,優(yōu)先在表達(dá)式中的運(yùn)算順序的。優(yōu)先級(jí)高的先做運(yùn)算,優(yōu)先級(jí)低的后做運(yùn)算,優(yōu)先級(jí)相同的由結(jié)合性決定計(jì)算順序。級(jí)低的后做運(yùn)算,優(yōu)先級(jí)相同的由結(jié)合性決定計(jì)算順序。 (高)!,算術(shù)運(yùn)算符,關(guān)系運(yùn)算符,位運(yùn)算符,(高)!,算術(shù)運(yùn)算符,關(guān)系運(yùn)算符,位運(yùn)算符,&、|,條件運(yùn)算符,賦值運(yùn)算符,逗號(hào)運(yùn)算符(低),條件運(yùn)算符,賦值運(yùn)算符,逗號(hào)運(yùn)算符(低) 詳細(xì)說(shuō)
52、明詳細(xì)說(shuō)明(2)結(jié)合性)結(jié)合性 大多數(shù)運(yùn)算符都是按從左到右計(jì)算,只有三類(lèi)運(yùn)算符的大多數(shù)運(yùn)算符都是按從左到右計(jì)算,只有三類(lèi)運(yùn)算符的結(jié)合性是從右到左。他們是:?jiǎn)文?、三目和賦值。結(jié)合性是從右到左。他們是:?jiǎn)文?、三目和賦值。2022-3-1373 表達(dá)式是用于計(jì)算的式子,它由運(yùn)算符、表達(dá)式是用于計(jì)算的式子,它由運(yùn)算符、運(yùn)算數(shù)和括號(hào)組成。最簡(jiǎn)單的表達(dá)式只有運(yùn)算數(shù)和括號(hào)組成。最簡(jiǎn)單的表達(dá)式只有一個(gè)常量或變量,當(dāng)表達(dá)式中有兩個(gè)或多一個(gè)常量或變量,當(dāng)表達(dá)式中有兩個(gè)或多個(gè)運(yùn)算符時(shí),表達(dá)式稱(chēng)為復(fù)雜表達(dá)式,其個(gè)運(yùn)算符時(shí),表達(dá)式稱(chēng)為復(fù)雜表達(dá)式,其中運(yùn)算符執(zhí)行的先后順序由它們的優(yōu)先級(jí)中運(yùn)算符執(zhí)行的先后順序由它們的優(yōu)先級(jí)
53、和結(jié)合性決定。執(zhí)行表達(dá)式所規(guī)定的運(yùn)算,和結(jié)合性決定。執(zhí)行表達(dá)式所規(guī)定的運(yùn)算,所得到的結(jié)果值便是表達(dá)式的值。所得到的結(jié)果值便是表達(dá)式的值。 C+中由于運(yùn)算符很豐富,因此表達(dá)式的中由于運(yùn)算符很豐富,因此表達(dá)式的種類(lèi)也很多。常用的表達(dá)式有種類(lèi)也很多。常用的表達(dá)式有6種。種。 2022-3-1374已知已知int a; 算術(shù)表達(dá)式。例如,算術(shù)表達(dá)式。例如,a+5.2/3.0-9%5 關(guān)系表達(dá)式。例如,關(guān)系表達(dá)式。例如,m=x 邏輯表達(dá)式。例如,!邏輯表達(dá)式。例如,!a & 8 | 7 條件表達(dá)式。例如,條件表達(dá)式。例如,a4 ? +a:-a 賦值表達(dá)式。例如,賦值表達(dá)式。例如,a=7 逗號(hào)表達(dá)式。例如
54、,逗號(hào)表達(dá)式。例如,a+5,a=7,a+=42022-3-1375 在表達(dá)式中,連續(xù)出現(xiàn)兩個(gè)運(yùn)算符時(shí),最在表達(dá)式中,連續(xù)出現(xiàn)兩個(gè)運(yùn)算符時(shí),最好用空格符分隔。如:好用空格符分隔。如: a+b; 系統(tǒng)將默認(rèn)為是系統(tǒng)將默認(rèn)為是a+ +b,因系統(tǒng)將按盡,因系統(tǒng)將按盡量取大的原則來(lái)分割多個(gè)運(yùn)算符。如果想量取大的原則來(lái)分割多個(gè)運(yùn)算符。如果想執(zhí)行執(zhí)行a加加+b,則應(yīng)寫(xiě)成:,則應(yīng)寫(xiě)成: a+ +b; 在寫(xiě)表達(dá)式中,有時(shí)記不清楚運(yùn)算符的優(yōu)在寫(xiě)表達(dá)式中,有時(shí)記不清楚運(yùn)算符的優(yōu)先級(jí)時(shí),可使用括號(hào)來(lái)確定運(yùn)算符組合。先級(jí)時(shí),可使用括號(hào)來(lái)確定運(yùn)算符組合。2022-3-1376 算術(shù)表達(dá)式是由算術(shù)運(yùn)算符和位操作運(yùn)算算術(shù)表達(dá)
55、式是由算術(shù)運(yùn)算符和位操作運(yùn)算符組成的表達(dá)式;符組成的表達(dá)式; 表達(dá)式的值是一個(gè)數(shù)值;表達(dá)式的值是一個(gè)數(shù)值; 表達(dá)式的類(lèi)型具體地由運(yùn)算符和操作數(shù)決表達(dá)式的類(lèi)型具體地由運(yùn)算符和操作數(shù)決定。定。2022-3-1377#include using namespace std;int main( )int a,b, m=3,n=4;a=7*2+-3%5-4/3; /-3%5=-3,4/3=1b=m+ - -n;coutatbtmtnendl; return 0; 執(zhí)行結(jié)果?執(zhí)行結(jié)果? 2022-3-1378 由關(guān)系運(yùn)算符組成的表達(dá)式為關(guān)系表達(dá)式。由關(guān)系運(yùn)算符組成的表達(dá)式為關(guān)系表達(dá)式。關(guān)系表達(dá)式的運(yùn)算結(jié)果
56、為邏輯型,常用在關(guān)系表達(dá)式的運(yùn)算結(jié)果為邏輯型,常用在條件語(yǔ)句和循環(huán)語(yǔ)句中。條件語(yǔ)句和循環(huán)語(yǔ)句中。 格式:格式: 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 2022-3-1379#include using namespace std;int main( ) char x=m,y=n; int n; n=xy; cout nendl; n=x=y-1; coutnendl; n=(y!=Y)+(53)+(y-x=1); cout nendl; return 0;程序執(zhí)行結(jié)果為?程序執(zhí)行結(jié)果為? 2022-3-1380 由邏輯運(yùn)算符組成的表達(dá)式稱(chēng)為邏輯表達(dá)由邏輯運(yùn)算符組成的表達(dá)式稱(chēng)為邏輯表達(dá)式。邏輯表達(dá)式的值為邏輯型
57、,結(jié)果為真式。邏輯表達(dá)式的值為邏輯型,結(jié)果為真或假?;蚣佟?格式:格式: 邏輯運(yùn)算符邏輯運(yùn)算符 “&” 的的“短路特性短路特性” 表達(dá)式表達(dá)式1 & 表達(dá)式表達(dá)式2 先求解表達(dá)式先求解表達(dá)式1 若表達(dá)式若表達(dá)式1的值為的值為false,則最終結(jié)果為,則最終結(jié)果為false,不再求解表達(dá)式,不再求解表達(dá)式2 若表達(dá)式若表達(dá)式1的結(jié)果為的結(jié)果為true,則求解表達(dá)式,則求解表達(dá)式2,以表達(dá)式,以表達(dá)式2的結(jié)果作的結(jié)果作為最終結(jié)果為最終結(jié)果 “|” 的的“短路特性短路特性” 表達(dá)式表達(dá)式1 | 表達(dá)式表達(dá)式2 先求解表達(dá)式先求解表達(dá)式1 若表達(dá)式若表達(dá)式1的值為的值為true,則最終結(jié)果為,則最終結(jié)
58、果為true,不再求解表達(dá)式,不再求解表達(dá)式2 若表達(dá)式若表達(dá)式1的結(jié)果為的結(jié)果為false,則求解表達(dá)式,則求解表達(dá)式2,以表達(dá)式,以表達(dá)式2的結(jié)果的結(jié)果作為最終結(jié)果作為最終結(jié)果2022-3-13812022-3-1382 int a=3, b=0; 問(wèn)下面表達(dá)式運(yùn)算后問(wèn)下面表達(dá)式運(yùn)算后a和和b的值是多少?的值是多少? ! a & a+b & a+ !a|a+|b+ 第一題是一個(gè)由第一題是一個(gè)由&組成的邏輯表達(dá)式,從左至右計(jì)算三組成的邏輯表達(dá)式,從左至右計(jì)算三個(gè)子表達(dá)式,只要有一個(gè)為個(gè)子表達(dá)式,只要有一個(gè)為0就不再計(jì)算其他子表達(dá)式。就不再計(jì)算其他子表達(dá)式。當(dāng)計(jì)算!當(dāng)計(jì)算!a的值為的值為0時(shí),
59、便可確定整個(gè)表達(dá)式的值為時(shí),便可確定整個(gè)表達(dá)式的值為0,因,因此后面的子表達(dá)式就不再計(jì)算了。所以整個(gè)表達(dá)式的值此后面的子表達(dá)式就不再計(jì)算了。所以整個(gè)表達(dá)式的值0。 第二題:這是一個(gè)由第二題:這是一個(gè)由|組成的邏輯表達(dá)式,從左至右計(jì)算組成的邏輯表達(dá)式,從左至右計(jì)算三個(gè)子表達(dá)式,只要有一個(gè)結(jié)果為三個(gè)子表達(dá)式,只要有一個(gè)結(jié)果為1則不再計(jì)算后面的子則不再計(jì)算后面的子表達(dá)式。第一個(gè)子表達(dá)式為表達(dá)式。第一個(gè)子表達(dá)式為!a結(jié)果為結(jié)果為0,再計(jì)算,再計(jì)算a+結(jié)果結(jié)果為為4,非,非0即為即為true,所以就不再計(jì)算后面的子表達(dá)式。,所以就不再計(jì)算后面的子表達(dá)式。所以整個(gè)表達(dá)式的值為所以整個(gè)表達(dá)式的值為1。2022-3-1383 由三目運(yùn)算符?:組成的表達(dá)式為條件表由三目運(yùn)算符?:組成的表達(dá)式為條件表達(dá)式。達(dá)式。 格式:表達(dá)式格式:表達(dá)式1 ? 表達(dá)式表達(dá)式2 : 表達(dá)式表達(dá)式3 功能:若表達(dá)式功能:若表達(dá)式1的值為真,則條件表達(dá)式的值為真,則條件表達(dá)式的值為表達(dá)式的值為表達(dá)式2的值,否則為表達(dá)式的值,否則為表達(dá)式3的值。的值。2022-3-1384#include using namespace std;int main( ) int a=3,b=4,c; c=ab? +a:+b; couta,b,cendl; c=a-b?a-3?b:b-a:a; couta,b,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 比亞迪入職培訓(xùn)
- 企業(yè)培訓(xùn)課件
- 承臺(tái)安全教育培訓(xùn)
- 競(jìng)選護(hù)理總帶教
- 素質(zhì)教育評(píng)價(jià)體系構(gòu)建與實(shí)施路徑
- 腫瘤科護(hù)患工休座談會(huì)
- 幼兒園小班美術(shù)種子粘貼畫(huà)教案
- 員工制度管理制度培訓(xùn)
- 部門(mén)培訓(xùn)方案
- 農(nóng)業(yè)測(cè)量試題及答案
- 潔凈室施工培訓(xùn)
- 新生兒糖尿病喂養(yǎng)指導(dǎo)
- 山西省太原市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版期末考試(下學(xué)期)試卷及答案
- 住院患者跌倒、墜床、壓力性損傷的風(fēng)險(xiǎn)評(píng)估及管理
- 2023風(fēng)光互補(bǔ)路燈設(shè)計(jì)方案
- 2023年山東省夏季普通高中學(xué)業(yè)水平合格考試會(huì)考生物試題及參考答案
- 2024年山東省青島市中考英語(yǔ)試卷附答案
- 材料力學(xué)(山東聯(lián)盟-中國(guó)石油大學(xué)(華東))智慧樹(shù)知到期末考試答案章節(jié)答案2024年中國(guó)石油大學(xué)(華東)
- 江西省南昌二中心遠(yuǎn)教育集團(tuán)九灣學(xué)校2023-2024學(xué)年八年級(jí)下學(xué)期期末考試物理試題
- 深入理解Nginx(模塊開(kāi)發(fā)與架構(gòu)解析)
- MOOC 中國(guó)文化概論-華南師范大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論