版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C++程序設(shè)計(jì)C++程序設(shè)計(jì)1計(jì)算機(jī)語(yǔ)言的基本體系結(jié)構(gòu)語(yǔ)言的基本體系結(jié)構(gòu)程序設(shè)計(jì)語(yǔ)言計(jì)算機(jī)語(yǔ)言的基本體系結(jié)構(gòu)語(yǔ)言的基本體系結(jié)構(gòu)程序設(shè)計(jì)語(yǔ)言2本章將簡(jiǎn)要介紹C++中的數(shù)據(jù)類型及相關(guān)運(yùn)算,以及常量、變量、表達(dá)式、語(yǔ)句等,最后介紹簡(jiǎn)單的輸入輸出方法。第一章C++基礎(chǔ)知識(shí)本章將簡(jiǎn)要介紹C++中的數(shù)據(jù)類型及相關(guān)運(yùn)算,以及常量、變量、3第一章C++基礎(chǔ)知識(shí)
C++的詞法單位
運(yùn)算符和表達(dá)式
簡(jiǎn)單的輸入輸出
數(shù)組與字符數(shù)組
常量和變量
C++中的數(shù)據(jù)類型ok1.1
C++語(yǔ)言概述
1.2一個(gè)C++程序?qū)嵗谝徽翪++基礎(chǔ)知識(shí)C++的詞法單位41.1C++語(yǔ)言概述
歷史:C++是由C語(yǔ)言為基礎(chǔ)發(fā)展起來(lái)的。C語(yǔ)言是作為UNIX操作系統(tǒng)的開(kāi)發(fā)語(yǔ)言為人們所認(rèn)識(shí)。七十年代末,C語(yǔ)言開(kāi)始移植到非UNIX環(huán)境中,并逐步脫離UNIX系統(tǒng)成為一種獨(dú)立的程序設(shè)計(jì)語(yǔ)言。1988年美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)ANSI對(duì)C語(yǔ)言進(jìn)行了標(biāo)準(zhǔn)化,產(chǎn)生了ANSIC。1.1C++語(yǔ)言概述歷史:51.1C++語(yǔ)言概述
(1)C語(yǔ)言既具備高級(jí)語(yǔ)言的結(jié)構(gòu)和編程環(huán)境,又提供類似于匯編語(yǔ)言那樣的系統(tǒng)資源操縱能力及程序執(zhí)行效率。適合解決有實(shí)時(shí)要求的問(wèn)題。C語(yǔ)言的主要特點(diǎn):(2)有豐富的運(yùn)算符和數(shù)據(jù)類型,表達(dá)式類型多樣化,可以方便地實(shí)現(xiàn)在其他語(yǔ)言中較難實(shí)現(xiàn)的運(yùn)算,對(duì)各種不同類型的程序設(shè)計(jì)都有良好的適應(yīng)性。(3)以函數(shù)為基礎(chǔ)實(shí)現(xiàn)程序的結(jié)構(gòu)化設(shè)計(jì),支持大型程序的多文件構(gòu)成及單個(gè)文件獨(dú)立編譯,適合大型復(fù)雜程序的設(shè)計(jì)。(4)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。(5)可移植性好。1.1C++語(yǔ)言概述(1)C語(yǔ)言既具備高級(jí)語(yǔ)言的結(jié)構(gòu)和61.1C++語(yǔ)言概述
C++是由C發(fā)展成為的以面向?qū)ο鬄橹饕卣鞯恼Z(yǔ)言。作為C語(yǔ)言的超集,C++繼承了C的所有優(yōu)點(diǎn),又對(duì)數(shù)據(jù)類型做了擴(kuò)充,使得編譯系統(tǒng)可以檢查出更多類型錯(cuò)誤。C++支持面向?qū)ο蟪绦蛟O(shè)計(jì),通過(guò)類和對(duì)象的概念把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝在一起,通過(guò)派生、繼承、重載和多態(tài)性等特征實(shí)現(xiàn)了軟件重用和程序自動(dòng)生成,使得大型復(fù)雜軟件的構(gòu)造和維護(hù)變得更加有效和容易。C++語(yǔ)言的主要特點(diǎn):1.1C++語(yǔ)言概述C++是由C發(fā)展成為的以面向?qū)ο鬄?1.1C++語(yǔ)言概述
C++與C完全兼容,很多用C編寫(xiě)的庫(kù)函數(shù)和應(yīng)用程序都可以為C++所用。但正是由于與C兼容,使得C++不是純正的面向?qū)ο蟮恼Z(yǔ)言,它既支持面向?qū)ο蟪绦蛟O(shè)計(jì),也支持面向過(guò)程設(shè)計(jì)。但我們應(yīng)當(dāng)注意用面向?qū)ο蟮乃枷脒M(jìn)行設(shè)計(jì),以發(fā)揮出C++的優(yōu)勢(shì)。C++語(yǔ)言的兼容性:1.1C++語(yǔ)言概述C++與C完全兼容,很多用C編寫(xiě)的81.2一個(gè)C++程序?qū)嵗?include<iostream>usingnamespacestd;intmax(inti,intj){ //A
if(i>=j)returni;
else
returnj;}intmain(void){//Bcout<<″輸入i,j:″;//顯示提示信息
inti,j; //說(shuō)明變量cin>>i>>j;//從鍵盤(pán)上輸入變量值
cout<<″maxnumberis:″<<max(i,j)<<′\n′; //輸出提示和結(jié)果
return0;}【例1.1】
一個(gè)簡(jiǎn)單的C++程序。程序組成:注釋編譯預(yù)處理指令程序體由若干函數(shù)組成,其中有且僅有一個(gè)主函數(shù)main(),這是程序的執(zhí)行入口。在Windows編程中定義為winmain()。下面進(jìn)入VC++運(yùn)行1.2一個(gè)C++程序?qū)嵗?include<iostre91.3C++的詞法單位1.3.1C++的字符集
1.3.2關(guān)鍵字
1.3.3標(biāo)識(shí)符(ID,identifier)1.3.4標(biāo)點(diǎn)符號(hào)
ok1.3C++的詞法單位1.3.1C++的字101.3.1C++的字符集ASCII碼字符集是計(jì)算機(jī)中的常用字符集。它包括英文字母及阿拉伯?dāng)?shù)字等128個(gè)字符,存儲(chǔ)一個(gè)ASCII碼占用一個(gè)字節(jié)單元。漢字國(guó)標(biāo)碼用于漢字處理。國(guó)標(biāo)碼的存儲(chǔ)占用兩個(gè)字節(jié)單元。Unicode字符集對(duì)各類字符進(jìn)行統(tǒng)一的雙字節(jié)編碼。它包括了世界上多種語(yǔ)言的基本字符,最多可容納65536個(gè)字符。ASCII碼字符集,國(guó)標(biāo)碼字符集都是它的子集。ok常用字符集:1.3.1C++的字符集ASCII碼字符集是計(jì)算機(jī)中11C++的字符集26個(gè)小寫(xiě)字母
abcdefghijklmnopqrstuvwxyz26個(gè)大寫(xiě)字母
ABCDEFGHIJKLMNOPQRSTUVWXYZ10個(gè)阿拉伯?dāng)?shù)字
0123456789
其他符號(hào)
+-*/=,._:;?\"'~|!#%&()[]{}^<>空格C++語(yǔ)言基本字符:C++的字符集26個(gè)abcdefghijklmnopqrs121.3.2關(guān)鍵字關(guān)鍵字(keyword):又稱保留字。是由系統(tǒng)定義的具有特定含義的英文單詞。關(guān)鍵字不能另作它用。C++區(qū)分大小寫(xiě),關(guān)鍵字全部由小寫(xiě)字母組成。標(biāo)準(zhǔn)C++(ISO14882)定義了74個(gè)關(guān)鍵字,具體的C++編譯器會(huì)做一些增刪。常用關(guān)鍵字及分類見(jiàn)表。ok1.3.2關(guān)鍵字關(guān)鍵字(keyword):C13關(guān)鍵字?jǐn)?shù)據(jù)類型說(shuō)明符與修飾符boolcharwchar_tclassconstdoubleenumfloatintlongshortsignedstructunionunsignedvoidvolatile存儲(chǔ)類型說(shuō)明符autoexterninlineregisterstatic訪問(wèn)說(shuō)明符friendprivateprotectedpublic其它說(shuō)明符asmexplicitnamespaceoperatortemplatethistypedeftypenameusingvirtual
語(yǔ)句與標(biāo)號(hào)breakcasecatchcontinuedefaultdoelseforgotoifreturnswitchthrowtrywhile
運(yùn)算符及邏輯值deletefalsenewsizeoftrue表2-1C++常用關(guān)鍵字及分類
ok關(guān)鍵字?jǐn)?shù)據(jù)類型說(shuō)明符與修飾符boo14關(guān)鍵字
還有一些關(guān)鍵字本書(shū)未介紹:
const_castdynamic_castreinterpret_caststatic_castexportmutabletypeid下面可用一些關(guān)鍵字代替邏輯運(yùn)算符:andand_eqbitandbitorcomplnotoror_eqXorxor_eqnot_eq關(guān)鍵字還有一些151.3.3標(biāo)識(shí)符標(biāo)識(shí)符(Identifier,ID):是程序員定義的“單詞”,用來(lái)給變量、常量、數(shù)據(jù)類型、函數(shù)等命名。合法標(biāo)識(shí)符由字母或下劃線開(kāi)始,由字母、數(shù)字、下劃線組成,其有效長(zhǎng)度為1-31個(gè)字符,長(zhǎng)度超過(guò)31個(gè)字符者只識(shí)別前31個(gè)字符,VC++標(biāo)識(shí)符長(zhǎng)度為1-247個(gè)字符。建議使用有一定含義的英文單詞或拼音序列作標(biāo)識(shí)符,以提高可讀性;另外盡量不用下劃線或雙下劃線打頭,以免與系統(tǒng)定義的關(guān)鍵字沖突。ok1.3.3標(biāo)識(shí)符標(biāo)識(shí)符(Identifier,ID)16 標(biāo)識(shí)符例:判斷下面哪些是合法的標(biāo)識(shí)符:
MyFileSalary94amountvoid94SalarySalary94$amountNum_of_Student 標(biāo)識(shí)符例:判斷下面哪些是合法的標(biāo)識(shí)符:MyFileS171.3.4標(biāo)點(diǎn)符號(hào)標(biāo)點(diǎn)符號(hào):#(){},:;"'…等。標(biāo)點(diǎn)符號(hào)的作用:有一定的語(yǔ)法意義。如字符和字符串常量分別用'
'和"
"引起來(lái)。對(duì)語(yǔ)法符號(hào)起分隔作用。如;等1.3.4標(biāo)點(diǎn)符號(hào)標(biāo)點(diǎn)符號(hào):標(biāo)點(diǎn)符號(hào)的作用:有一定的181.4C++中的數(shù)據(jù)類型圖2-1C++的數(shù)據(jù)結(jié)構(gòu)實(shí)型float雙精度型doubleC++的數(shù)據(jù)類型基本數(shù)據(jù)類型非基本數(shù)據(jù)類型數(shù)組type[]指針type*結(jié)構(gòu)struct聯(lián)合union枚舉enum類class整型int字符型char邏輯型bool無(wú)值型void實(shí)型ok1.4C++中的數(shù)據(jù)類型圖2-1C++的數(shù)據(jù)結(jié)構(gòu)19
C++基本數(shù)據(jù)類型稱為內(nèi)置數(shù)據(jù)類型,內(nèi)置數(shù)據(jù)類型不僅定義了數(shù)據(jù)類型,還定義了常用操作。本節(jié)僅介紹各種基本數(shù)據(jù)類型的定義,常用操作將在后面介紹。
C++為強(qiáng)類型語(yǔ)言,所有數(shù)據(jù)的使用嚴(yán)格遵從“先說(shuō)明后使用”的原則,以便編譯器進(jìn)行編譯。
整型:用來(lái)存放整數(shù),整數(shù)(有符號(hào)的整數(shù))在內(nèi)存中存放的是它的補(bǔ)碼,無(wú)符號(hào)數(shù)沒(méi)有符號(hào)位,存放的就是原碼。整數(shù)占用的字節(jié)數(shù)與機(jī)型有關(guān),32位機(jī)上占用4個(gè)字節(jié)。內(nèi)置數(shù)據(jù)類型:C++基本數(shù)據(jù)類型稱為內(nèi)置數(shù)據(jù)類型,內(nèi)置數(shù)據(jù)類型不僅20
字符型:用來(lái)保存字符,存儲(chǔ)的是該字符的ASCII碼,占用一個(gè)字節(jié)。如大寫(xiě)字母A的ASCII碼為65,在對(duì)應(yīng)的一個(gè)字節(jié)中存放的就是65。字符型數(shù)據(jù)從本質(zhì)上說(shuō)也是整數(shù),可以是任何一個(gè)8位二進(jìn)制整數(shù)。C++同時(shí)也支持寬字符類型(wchar_t),或稱雙字節(jié)字符型。
實(shí)型:?jiǎn)尉群碗p精度型都用來(lái)存放實(shí)數(shù),兩者表示的實(shí)數(shù)精度不同。實(shí)數(shù)在內(nèi)存中以規(guī)范化的浮點(diǎn)數(shù)存放,包括尾數(shù)、數(shù)符和階碼。數(shù)的精度取決于尾數(shù)的位數(shù),32位機(jī)上實(shí)型為23位(因規(guī)范化數(shù)的數(shù)碼最高位恒為1,不必存儲(chǔ),實(shí)際精度為24位),雙精度為52位。字符型:用來(lái)保存字符,存儲(chǔ)的是該字符的ASCII碼,21邏輯型:也稱布爾型,其取值為true(邏輯真)和false(邏輯假),存儲(chǔ)字節(jié)數(shù)在不同編譯系統(tǒng)中可能有所不同,中為1個(gè)字節(jié)。布爾型在運(yùn)算中可以和整型相互轉(zhuǎn)化,false對(duì)應(yīng)為0,true對(duì)應(yīng)為1或非0無(wú)值型:主要用來(lái)說(shuō)明函數(shù)的返回值類型,將在函數(shù)一章中具體介紹。
基本數(shù)據(jù)類型還可以加上一些修飾詞,包括:signed(有符號(hào))、unsigned(無(wú)符號(hào))、long(長(zhǎng))、short(短)。參見(jiàn)下表:邏輯型:也稱布爾型,其取值為true(邏輯真)和false(22類型名稱占用字節(jié)數(shù)取值范圍bool布爾型
1true,false(signed)char有符號(hào)字符型1-128127unsigedchar無(wú)符號(hào)字符型10255(signed)short(int)有符號(hào)短整型2-3276832767unsignedshort(int)無(wú)符號(hào)短整型2065535(signed)int(signed)有符號(hào)整型4-231
(231-1)unsigned(int)無(wú)符號(hào)整型40(232-1)(signed)long(int)有符號(hào)長(zhǎng)整型4-231
(231-1)unsignedlong(int)無(wú)符號(hào)長(zhǎng)整型40(232-1)float實(shí)型4-1038
1038double雙精度型8-10308
10308longdouble長(zhǎng)雙精度型8-10308
10308void無(wú)值型0無(wú)值VC++中所有基本數(shù)據(jù)類型類型名稱取值范圍bool布爾型
1t231.5變量和常量1.5.1變量1.5.2文字常量1.5.3常變量在程序中,常量和變量是用來(lái)表示數(shù)據(jù)的;常量又分為字面常量、常變量;ok1.5變量和常量1.5.1變量241.5.1變量1變量說(shuō)明
2變量初始化變量,在程序中是指可以改變值的量;變量必須用標(biāo)識(shí)符進(jìn)行標(biāo)識(shí),稱為變量名;變量有類型之分,如整形變量、字符變量等;類型決定了變量的取值范圍和合法運(yùn)算;任何變量都必須先說(shuō)明后使用;一是便于編譯程序?yàn)樽兞糠峙淇臻g,二是便于編譯時(shí)進(jìn)行語(yǔ)法檢查;變量使用的第一步,是給變量賦一個(gè)確定的值;ok1.5.1變量1變量說(shuō)明2變量初始化變25變量說(shuō)明
在C++中,變量說(shuō)明的一般格式為:《存儲(chǔ)類型》數(shù)據(jù)類型變量名1《,變量名2,,變量名n》;例:inti,j,k;
//說(shuō)明三個(gè)整型變量i,j,kfloatx,y,z;
//說(shuō)明三個(gè)單精度實(shí)型變量x,y,zcharc1,c2;
//說(shuō)明兩個(gè)字符型變量c1,c2doubledx;
//說(shuō)明一個(gè)雙精度型變量dx
變量說(shuō)明在C++中,變量說(shuō)明的一般格式為:例:26變量初始化變量初始化:定義變量時(shí)即給變量一個(gè)值稱為變量初始化例如: inta=3,b=4,c=5; float;
變量初始化可以避免引用到隨機(jī)變量。如未初始化,變量使用的第一步是賦一個(gè)確定的值。變量初始化變量初始化:271.5.2文字常量1.整型常量
4.字符串常量3.字符型常量2.實(shí)型常量文字常量:指程序中直接給出的量;常量的值在程序執(zhí)行過(guò)程中保持不變;并且存儲(chǔ)在程序區(qū),而非數(shù)據(jù)區(qū);根據(jù)取值和表示方法的不同,可分為以下幾種:ok1.5.2文字常量1.整型常量4.28整型常量十進(jìn)制表示法八進(jìn)制表示法十六進(jìn)制表示法其他表示法整型常量表示方法:ok整型常量十進(jìn)制表示法八進(jìn)制表示法十六進(jìn)制表示法其他表示法整型29整數(shù)的十進(jìn)制表示方法C++中十進(jìn)制表示與平時(shí)熟悉的書(shū)寫(xiě)方式相同。例:15-24ok整數(shù)的十進(jìn)制表示方法C++中十進(jìn)制表示與平時(shí)熟悉的30整數(shù)的八進(jìn)制表示
C++中八進(jìn)制表示以0開(kāi)始,由數(shù)字07組成,用來(lái)表示一個(gè)八進(jìn)制數(shù)。例:012 //八進(jìn)制數(shù)12,即十進(jìn)制數(shù)10-0655 //八進(jìn)制數(shù)-655,即十進(jìn)制數(shù)-429ok整數(shù)的八進(jìn)制表示C++中八進(jìn)制表示以0開(kāi)始,由數(shù)31整數(shù)的十六進(jìn)制表示
C++中十六進(jìn)制以0X(大小寫(xiě)均可)開(kāi)始,由數(shù)字09和字母AF(大小寫(xiě)均可)組成,用來(lái)表示一個(gè)十六進(jìn)制數(shù)。例:0x32A//十六進(jìn)制數(shù)32A,即十進(jìn)制數(shù)810-0x2fe0//十六進(jìn)制數(shù)-2fe0,//即十進(jìn)制數(shù)-12256ok整數(shù)的十六進(jìn)制表示C++中十六進(jìn)制以0X(大小寫(xiě)32整數(shù)的其他表示方法長(zhǎng)整型常量和無(wú)符號(hào)整型常量:長(zhǎng)整型常數(shù)以L或l結(jié)尾,無(wú)符號(hào)常整數(shù)以U或u結(jié)尾,以UL或LU(大小寫(xiě)均可)結(jié)尾則可表示無(wú)符號(hào)長(zhǎng)整型常數(shù)。例如:-84L //十進(jìn)制長(zhǎng)整數(shù)-84026U //八進(jìn)制表示的無(wú)符號(hào)整數(shù)260X32LU//十六進(jìn)制表示的無(wú)符號(hào)長(zhǎng)整型數(shù)32。整數(shù)的其他表示方法長(zhǎng)整型常量和無(wú)符號(hào)整型常量:33實(shí)型常量(1)一般形式與平時(shí)書(shū)寫(xiě)形式相同,由數(shù)字09和小數(shù)點(diǎn)組成。例如:0.23-125.760.0.46-35.(2)指數(shù)形式(也稱為科學(xué)表示法)表示為尾數(shù)乘以10的次方形式,由尾數(shù)、E或e和階數(shù)組成。指數(shù)形式要求在E或e前面的尾數(shù)部分必須有數(shù)字,后面的指數(shù)部分必須為整數(shù)。
例:判斷下列表示是否合法123E12-.34e-2E41.43E3.5包含小數(shù)點(diǎn)和10的冪的數(shù)為實(shí)型常量表示方法:實(shí)型常量(1)一般形式與平時(shí)書(shū)寫(xiě)形式相同,由數(shù)字034字符型常量
字符常量:用單引號(hào)引起來(lái)的單個(gè)字符。在內(nèi)存中保存的是字符的ASCII碼值。在所有字符中,可顯示字符通常就用單引號(hào)引起來(lái)表示:
'a' //字符a
'@' //字符@
'4' //字符4
'
' //空格字符特殊情況字符,如不可顯示的字符等,c++使用轉(zhuǎn)義序列表示方法(詳見(jiàn)表1-3,此處略):
'\n' //換行
'\\'//字符\字符型常量字符常量:354.字符串常量字符串常量與字符型常量的區(qū)別:字符串常量"
a"占兩個(gè)字節(jié),存放'a'和'\0',值為0x6100字符型常量'a'占一個(gè)字節(jié),存放'a',值為0x61\0aa字符串常量:用雙引號(hào)引起來(lái)的若干個(gè)字符。例如:"
IamaChinese.","123","
a","
"4.字符串常量字符串常量與字符型常量的區(qū)別:字符串常量"361.5.3常變量標(biāo)識(shí)符常量:用常量說(shuō)明符const給文字常量起的名字(標(biāo)識(shí)符),因?yàn)槠湔f(shuō)明和引用形式很像變量,所以也稱常變量;例如:constfloatPI=3.14159;//推薦用大寫(xiě)字母作為常變量名constintNumber_of_Student=100;常變量必須也只能在說(shuō)明時(shí)進(jìn)行初始化;常變量初始化之后,不允許再被賦值;常變量必須先說(shuō)明后使用;常變量存儲(chǔ)在數(shù)據(jù)區(qū),并且可以按地址訪問(wèn),編譯時(shí)系統(tǒng)對(duì)常變量進(jìn)行類型檢查。C++建議使用常變量,而不要使用文字常量。1.5.3常變量標(biāo)識(shí)符常量:371.6運(yùn)算符和表達(dá)式1.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性
1.6.2基本運(yùn)算符及其表達(dá)式1.6.4算術(shù)類型轉(zhuǎn)換和賦值類型轉(zhuǎn)換(選讀)1.6.5求值次序與副作用1.6.3語(yǔ)句本節(jié)的重點(diǎn):介紹與基本數(shù)據(jù)類型封裝在一起的運(yùn)算(操作)。ok1.6運(yùn)算符和表達(dá)式1.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性381.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性ok在C++中對(duì)常量或變量進(jìn)行運(yùn)算或處理的符號(hào)稱為運(yùn)算符,參與運(yùn)算的對(duì)象稱為操作數(shù)。運(yùn)算符按操作數(shù)的數(shù)量分類:?jiǎn)文窟\(yùn)算符只對(duì)一個(gè)操作數(shù)運(yùn)算,如負(fù)號(hào)運(yùn)算符“”等;雙目運(yùn)算符要求有兩個(gè)操作數(shù),如乘號(hào)運(yùn)算符“*”等;三目運(yùn)算符要求有三個(gè)操作數(shù),三元運(yùn)算符只有一個(gè)“?:”。1.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性ok在C++中對(duì)391.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性ok
優(yōu)先級(jí)和結(jié)合性決定了運(yùn)算中的優(yōu)先關(guān)系。優(yōu)先級(jí):指不同運(yùn)算符在運(yùn)算中的優(yōu)先關(guān)系,可以用序號(hào)表示,序號(hào)越小,優(yōu)先級(jí)越高。例如:加號(hào)(+)和減號(hào)(-)的優(yōu)先級(jí)是6;乘號(hào)(*)和除號(hào)(/)的優(yōu)先級(jí)是5;*和/的優(yōu)先級(jí)高于+和-。
1.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性ok優(yōu)先級(jí)401.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性結(jié)合性:決定優(yōu)先級(jí)相等的運(yùn)算符組合在一起時(shí)的運(yùn)算次序,同一優(yōu)先級(jí)的運(yùn)算符有相同的結(jié)合性。如+、-的結(jié)合性是從左到右(左結(jié)合),則a+b+c-d的運(yùn)算次序?yàn)椋?(a+b)+c)-d//先算a+b,再加c,最后減d又如前++和單目負(fù)-的結(jié)合性是從右到左(右結(jié)合),則-++a的運(yùn)算次序?yàn)椋?(++a)//先做++a,再取相反數(shù)(加負(fù)號(hào))這對(duì)算法描述是必須的,每一步做什么必須確定。1.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性結(jié)合性:411.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性例:(1)a*b+c;
//先做乘法運(yùn)算,再做加法(2) a+b-c;
//根據(jù)左結(jié)合性,先取a、b相加; //再取c,最后相減演示如下:設(shè)a=10,b=20,c=15;1020151020+3015-151.6.1運(yùn)算符、優(yōu)先級(jí)和結(jié)合性例:1020151020421算術(shù)運(yùn)算符及其表達(dá)式4邏輯運(yùn)算、邏輯表達(dá)式及其求值優(yōu)化5位運(yùn)算(選讀)2賦值運(yùn)算符賦值表達(dá)式3自增、自減運(yùn)算6逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式1.6.2基本運(yùn)算符及其表達(dá)式7sizeof()運(yùn)算符表達(dá)式:由運(yùn)算符、操作數(shù)及標(biāo)點(diǎn)符號(hào)組成的,能取得一個(gè)值的式子。1算術(shù)運(yùn)算符及其表達(dá)式4邏輯運(yùn)算、邏輯表達(dá)式及其求值優(yōu)化431.算術(shù)運(yùn)算符及其表達(dá)式優(yōu)先級(jí)運(yùn)算符名稱3+正,單目
-負(fù),單目5*乘,雙目
/除,雙目
%求余,雙目6+加,雙目
-減,雙目ok1.算術(shù)運(yùn)算符及其表達(dá)式
ok44整數(shù)的算術(shù)運(yùn)算:當(dāng)兩個(gè)操作數(shù)均為整數(shù)時(shí),*和/重載為整乘和整除,結(jié)果為整數(shù),除法運(yùn)算后舍去小數(shù)取整。如:5/4 //結(jié)果為1,整數(shù)當(dāng)兩個(gè)操作數(shù)均為整數(shù),%定義為求余運(yùn)算,也稱求模運(yùn)算,結(jié)果為兩個(gè)整數(shù)相除后的余數(shù)。如果兩個(gè)整數(shù)中有負(fù)數(shù),則先用兩數(shù)絕對(duì)值求余,最后結(jié)果的符號(hào)與被除數(shù)相同。例如6%3 //結(jié)果為06%7 //結(jié)果為67%6 //結(jié)果為1-7%6 //結(jié)果為-17%-6 //結(jié)果為1-7%-6 //結(jié)果為-1整數(shù)的算術(shù)運(yùn)算:當(dāng)兩個(gè)操作數(shù)均為整數(shù),%定義為求余運(yùn)算,也稱45實(shí)數(shù)的算術(shù)運(yùn)算:
只要有一個(gè)操作數(shù)是實(shí)數(shù),兩個(gè)操作數(shù)均轉(zhuǎn)換為double型,*和/重載為普通的乘和除,結(jié)果是實(shí)數(shù):5/4.0 //結(jié)果為,實(shí)數(shù)運(yùn)算符的重載:運(yùn)算符總是與操作數(shù)封裝在一起。相同的運(yùn)算符對(duì)不同類型的操作數(shù)執(zhí)行的運(yùn)算是有差異的。實(shí)數(shù)的算術(shù)運(yùn)算:運(yùn)算符的重載:46算術(shù)表達(dá)式:使用時(shí)注意:1、表達(dá)式中每個(gè)變量都有確定的值時(shí)才能進(jìn)行表達(dá)式求值;2、C++中算術(shù)運(yùn)算應(yīng)注意數(shù)據(jù)溢出問(wèn)題,即運(yùn)算結(jié)果超出對(duì)應(yīng)數(shù)據(jù)類型的表示范圍。編譯程序只會(huì)對(duì)除法運(yùn)算時(shí)除數(shù)為0這種情況提示出錯(cuò),因此,程序設(shè)計(jì)者必須在程序中解決檢查并處理整數(shù)溢出問(wèn)題。ok由算術(shù)運(yùn)算符連接的表達(dá)式,如:a+b*3;算術(shù)表達(dá)式:使用時(shí)注意:ok由算術(shù)運(yùn)算符連接的表達(dá)式,如:a472.賦值運(yùn)算符與賦值表達(dá)式
ok賦值與引用:
將數(shù)據(jù)存放到相應(yīng)存儲(chǔ)單元中稱為賦值,如果該單元中已有值,賦值操作以新值取代舊值;從某個(gè)存儲(chǔ)單元中取出數(shù)據(jù)使用,稱為引用,引用不影響單元中的值,即一個(gè)量可以多次引用。常量只能引用,不能賦值。賦值通過(guò)賦值運(yùn)算符“=”來(lái)完成,其意義是將賦值號(hào)右邊的值送到左邊變量所對(duì)應(yīng)的單元中。賦值號(hào)不是等號(hào),它具有方向性。
2.賦值運(yùn)算符與賦值表達(dá)式ok賦值與引用:賦值通過(guò)賦值運(yùn)算48左值與右值:C++將變量名代表的單元稱為“左值”,而將變量的值稱為“右值”。左值必須是內(nèi)存中一個(gè)可以訪問(wèn)且可以合法修改的對(duì)象,因此只能是變量名,而不能是常量或表達(dá)式。2.賦值運(yùn)算符與賦值表達(dá)式
例如下面的賦值運(yùn)算是錯(cuò)誤的:3.1415926=pi;
//左值不能是常數(shù)x+y=z;
//左值不能是表達(dá)式constintN=30;N=40;
//左值不能是常變量左值與右值:2.賦值運(yùn)算符與賦值表達(dá)式例如下面的賦值運(yùn)算是492.賦值運(yùn)算符與賦值表達(dá)式賦值表達(dá)式:由賦值運(yùn)算符連接的表達(dá)式。格式為:
變量=表達(dá)式例如:x=5+6;a=b=c=d+1;
復(fù)合賦值運(yùn)算符:雙目算術(shù)運(yùn)算符和賦值運(yùn)算符可以組合成單一運(yùn)算符:+=–=*=/=%=格式為:
變量復(fù)合賦值運(yùn)算符表達(dá)式它等同于
變量=變量運(yùn)算符表達(dá)式
例如:x+=5
等同于:x=x+5ok2.賦值運(yùn)算符與賦值表達(dá)式賦值表達(dá)式:ok503.自增自減運(yùn)算前置和后置運(yùn)算:前置是先增減后引用,即先對(duì)變量自加或自減,用新的值參與其他運(yùn)算;后置則是先引用后增減,即用變量原來(lái)的值參與其他運(yùn)算,然后再對(duì)變量進(jìn)行自加或自減,例如:inti=5,j=5,m,n;m=i++;
//后置;相當(dāng)于m=i;i=i+1;
//結(jié)果:i的值為6,m的值為5;n=++j;
//前置;相當(dāng)于j=j+1;n=j;
//結(jié)果:j的值為6,n的值為6;自增自減運(yùn)算符:意義:使變量當(dāng)前值加1或減1,再賦給該變量自己:i++或++i
//相當(dāng)于i=i+1
j--或--j
//相當(dāng)于j=j–1要求:操作數(shù)只能是變量,不能是常量或表達(dá)式;ok3.自增自減運(yùn)算前置和后置運(yùn)算:自增自減運(yùn)算符:ok514.邏輯運(yùn)算、邏輯表達(dá)式及其求值優(yōu)化
ok邏輯運(yùn)算:用于判斷分析,運(yùn)算符包括關(guān)系和邏輯運(yùn)算符。關(guān)系運(yùn)算符:包括:(大于)、(大于等于)、(小于)、(小于等于)、==(等于)和!=(不等于)。關(guān)系運(yùn)算符完成兩個(gè)操作數(shù)大小的比較,結(jié)果為邏輯值true(真)或false(假)。每種可比較大小的數(shù)據(jù)類型,都重載了關(guān)系運(yùn)算符。不同類型,自動(dòng)轉(zhuǎn)換為同一類型后進(jìn)行比較。在C++中這兩個(gè)邏輯值與整數(shù)之間有一個(gè)對(duì)應(yīng)關(guān)系,真對(duì)應(yīng)1,假對(duì)應(yīng)0;反過(guò)來(lái),0對(duì)應(yīng)假,非0整數(shù)對(duì)應(yīng)真。所以邏輯運(yùn)算結(jié)果可以作為整數(shù)參與算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算及其他運(yùn)算。4.邏輯運(yùn)算、邏輯表達(dá)式及其求值優(yōu)化ok邏輯運(yùn)算:在C++52關(guān)系表達(dá)式:例如:a+b>c+d/*等同于(a+b)>(c+d),結(jié)果為0或1*/y=a>b /*計(jì)算a>b的值0或1賦給y,y的值為0或1*/a>b>c /*等同于(a>b)>c,先求a>b的值,再將結(jié)果0或1與c比較大小*/由關(guān)系運(yùn)算符連接的表達(dá)式。值為true或false。ok關(guān)系表達(dá)式:例如:由關(guān)系運(yùn)算符連接的表達(dá)式。值為true或f534.邏輯運(yùn)算、邏輯表達(dá)式及其求值優(yōu)化設(shè)有定義floata=3.2;intb=5;則:3>a>b //結(jié)果是?根據(jù)右結(jié)合原則其運(yùn)算過(guò)程如下:a5b3>F,即0>F即04.邏輯運(yùn)算、邏輯表達(dá)式及其求值優(yōu)化設(shè)有定義floata54優(yōu)先級(jí)運(yùn)算符名稱語(yǔ)義3!邏輯非,單目操作數(shù)的值為真,則結(jié)果為假;反之結(jié)果為真12&&邏輯與,雙目當(dāng)兩個(gè)操作數(shù)全為真時(shí),結(jié)果為真,否則為假;13||邏輯或,雙目?jī)蓚€(gè)操作數(shù)中有一個(gè)為真,則結(jié)果為真;邏輯運(yùn)算符:包括:!、&&和||,其優(yōu)先級(jí)和語(yǔ)義見(jiàn)下表。優(yōu)先級(jí)運(yùn)算符名稱語(yǔ)義3!邏輯非,單目55由邏輯運(yùn)算符連接的表達(dá)式。其操作數(shù)和運(yùn)算結(jié)果均為邏輯量。運(yùn)算結(jié)果同樣可以作為一個(gè)整數(shù)參與其他運(yùn)算。
由于邏輯值和整數(shù)之間的對(duì)應(yīng)關(guān)系,也允許整型和字符型操作數(shù)進(jìn)行邏輯運(yùn)算:21&&0 //邏輯與,21與0,結(jié)果為假:021||0 //邏輯或,21或0,結(jié)果為真:1!21 //邏輯非,21的非,結(jié)果為假:0邏輯表達(dá)式:邏輯表達(dá)式計(jì)算時(shí),邏輯非優(yōu)先級(jí)最高,關(guān)系運(yùn)算其次,邏輯與和邏輯或最低。
由邏輯運(yùn)算符連接的表達(dá)式。由于邏輯值和整數(shù)之間的對(duì)應(yīng)56ok已知:
inta=10,b=20,c=30;floatx=1.8,y=2.4;a<b&&x>y||a<b-!c按優(yōu)先級(jí)與結(jié)合性,其求值順序等同于:(a<b)&&(x>y)||(a<(b-(!c)))t1=1t2=0t4=0-&&t3=0t5=b<t6=1||
得整個(gè)表達(dá)式的值為:①②③⑥④⑤⑦1ok已知:inta=10,b=20,c=30;f57邏輯表達(dá)式求值的優(yōu)化:在求邏輯表達(dá)式值的過(guò)程中,一旦表達(dá)式的值能夠確定,就不再逐步進(jìn)行下面的運(yùn)算。稱為“求值優(yōu)化”。已知:
inta=10,b=20,c=30;求:a<b||c++ //結(jié)果以及a,b,c的值t1=1①整個(gè)表達(dá)式的值為1可見(jiàn):表達(dá)式c++已不需要計(jì)算所以: c不變?nèi)詾?0編程人員在使用邏輯運(yùn)算時(shí)應(yīng)當(dāng)加以小心,優(yōu)化計(jì)算固然提高了運(yùn)算效率,但可能產(chǎn)生副作用。所謂副作用,就是出乎設(shè)計(jì)人員的意料,得到預(yù)想不到的結(jié)果。邏輯表達(dá)式求值的優(yōu)化:在求邏輯表達(dá)式值的過(guò)程中,一旦表達(dá)式的585.位運(yùn)算(選讀)(1)按位取反運(yùn)算符“~”(2)左移運(yùn)算符“<<”(3)右移運(yùn)算符“>>”(4)按位與運(yùn)算符“&”(5)按位或運(yùn)算符“|”(6)按位異或運(yùn)算符“^”okc++語(yǔ)言提供字位運(yùn)算,它對(duì)操作數(shù)的各個(gè)位進(jìn)行操作。5.位運(yùn)算(選讀)(1)按位取反運(yùn)算符“~”okc++語(yǔ)59(1)按位取反運(yùn)算符“~”將操作數(shù)的每個(gè)二進(jìn)制位取反,即1變?yōu)?,0變?yōu)?。例如,整數(shù)a的值為10011011,則~a的值為01100100。(2)左移運(yùn)算符“<<”運(yùn)算一般格式為:a<<n其中a為整數(shù),n為一個(gè)正整數(shù)常數(shù)。語(yǔ)義為將a的二進(jìn)制數(shù)依次向左移動(dòng)n個(gè)二進(jìn)制位,并在低位補(bǔ)0。左移n位相當(dāng)于乘以2的n次方,但移位運(yùn)算的速度比乘法快。
(3)右移運(yùn)算符“>>”與左移運(yùn)算符類同,將左操作數(shù)向右移動(dòng)右操作數(shù)指定的二進(jìn)制位數(shù),忽略移位后的小數(shù)部分,并在高位補(bǔ)0。一個(gè)整數(shù)右移n位相當(dāng)于除以2的n次方,但比除法快。在中有符號(hào)數(shù)右移時(shí)高位補(bǔ)符號(hào)位,嚴(yán)格對(duì)應(yīng)除法:-32>>3
//-32右移3位,由11100000B得11111100B,即-4(1)按位取反運(yùn)算符“~”(2)左移運(yùn)算符“<<”(3)右移60(4)按位與運(yùn)算符“&”將兩個(gè)操作數(shù)的對(duì)應(yīng)位逐一進(jìn)行按位邏輯與運(yùn)算。運(yùn)算規(guī)則為:對(duì)應(yīng)位均為1時(shí),該位運(yùn)算結(jié)果為1;否則為0。例如:a01001101b00001111a&b00001101該運(yùn)算可用來(lái)將整數(shù)的某些位置0,而保留所需要的位,上例保留了低四位。(5)按位或運(yùn)算符“|”將兩個(gè)操作數(shù)的對(duì)應(yīng)位逐一進(jìn)行按位邏輯或運(yùn)算。運(yùn)算規(guī)則為:只要有一個(gè)數(shù)對(duì)應(yīng)位為1,該位運(yùn)算結(jié)果即為1;兩個(gè)數(shù)對(duì)應(yīng)位均為0,該位結(jié)果為0。例如:a01001101b00001111a|b01001111該運(yùn)算符可用來(lái)將整數(shù)的某些位置1。上例高四位不變,低四位全1。(4)按位與運(yùn)算符“&”(5)按位或運(yùn)算符“|”61(6)按位異或運(yùn)算符“^”將兩個(gè)操作數(shù)的對(duì)應(yīng)位逐一進(jìn)行按位異或運(yùn)算。運(yùn)算規(guī)則為:當(dāng)對(duì)應(yīng)位的值不同時(shí),該位運(yùn)算結(jié)果為1,否則為0。例如:a01001101b00001111a^b01000010該運(yùn)算符可用來(lái)將一個(gè)整數(shù)的某些位取反,或?qū)⒄妥兞康闹抵?(將整型變量與自身按位異或)。上例低四位取反,高四位不變。雙目位運(yùn)算符也可以與賦值運(yùn)算符組合成復(fù)合賦值運(yùn)算符:<<=>>=&=|=^=以上6種單目運(yùn)算不影響數(shù)據(jù)本身的值,而是只產(chǎn)生一個(gè)中間量,這個(gè)中間量被引用后即不再存在。
(6)按位異或運(yùn)算符“^”以上6種單目運(yùn)算不影響數(shù)據(jù)本身的值626.逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式用逗號(hào)連接起來(lái)的表達(dá)式稱為逗號(hào)表達(dá)式,(C++中,逗號(hào)既是分隔符,又是運(yùn)算符。)格式為:表達(dá)式1,表達(dá)式2,…,表達(dá)式n
逗號(hào)表達(dá)式中的每一個(gè)表達(dá)式都會(huì)被運(yùn)算,整個(gè)逗號(hào)表達(dá)式的值為最后一個(gè)表達(dá)式的值。例如:a=(x=3,x+=6,5+6);//a=11x=96.逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式用逗號(hào)連接起來(lái)的表達(dá)式稱為逗號(hào)表達(dá)637.sizeof()運(yùn)算符
用于計(jì)算一個(gè)操作數(shù)類型或一個(gè)變量的字節(jié)數(shù)。一般格式為:sizeof(數(shù)據(jù)類型)或sizeof(變量名)
例如:sizeof(int)值為4
sizeof(float)值為4
doublex;
sizeof(x)值為87.sizeof()運(yùn)算符用于計(jì)算一個(gè)操作數(shù)641.6.3語(yǔ)句1表達(dá)式語(yǔ)句:表達(dá)式;2空語(yǔ)句:;3復(fù)合語(yǔ)句:{//若干語(yǔ)句}流程控制語(yǔ)句:流程控制語(yǔ)句用來(lái)控制或改變程序的執(zhí)行方向;結(jié)束1.6.3語(yǔ)句1表達(dá)式語(yǔ)句:表達(dá)式;結(jié)束651.6.4算術(shù)類型轉(zhuǎn)換和賦值類型轉(zhuǎn)換(選讀)1混合運(yùn)算的類型轉(zhuǎn)換規(guī)則
2賦值類型轉(zhuǎn)換
ok運(yùn)算過(guò)程中,當(dāng)某個(gè)二元運(yùn)算符兩邊的操作數(shù)類型不同但屬于類型相容時(shí),系統(tǒng)先將精度低的操作數(shù)變換到與另一操作數(shù)精度相同,而后再進(jìn)行運(yùn)算。
類型相容:類型不同但系統(tǒng)可以自動(dòng)進(jìn)行轉(zhuǎn)換。當(dāng)賦值號(hào)的左值和右值類型不一致但屬于類型相容時(shí),由系統(tǒng)自動(dòng)進(jìn)行類型轉(zhuǎn)換。3強(qiáng)制類型轉(zhuǎn)換
1.6.4算術(shù)類型轉(zhuǎn)換和賦值類型轉(zhuǎn)換(選讀)1混合運(yùn)算的661.混合運(yùn)算的類型轉(zhuǎn)換規(guī)則charshortintlongunsignedcharunsignedshortunsignedintunsignedlongfloatdoublelongdouble數(shù)據(jù)類型轉(zhuǎn)換方向ok1.混合運(yùn)算的類型轉(zhuǎn)換規(guī)則charshortintlong67具體規(guī)則:(1)字符可以作為整數(shù)參與數(shù)值運(yùn)算,整數(shù)值為其ASCII碼。(2)操作數(shù)為字符或短整型時(shí),系統(tǒng)自動(dòng)變換成整型。(3)操作數(shù)為實(shí)型時(shí),系統(tǒng)自動(dòng)變換成雙精度型。(4)其余情況,當(dāng)兩操作數(shù)類型不同時(shí),將精度低(或表示范圍小)的操作數(shù)的數(shù)據(jù)類型變換到與另一操作數(shù)類型相同再進(jìn)行運(yùn)算例:charc1,c2;inti1,i2;floatx1,x2;則表達(dá)式x2=c1*i1+c1*x1+c1*c2的求值過(guò)程為:將c1轉(zhuǎn)換成整型,完成c1*i1,結(jié)果表示為t1;將c1和x1均轉(zhuǎn)換成雙精度型,完成c1*x1,結(jié)果表示為t2;將c1和c2均轉(zhuǎn)換成整型,完成c1*c2,結(jié)果表示為t3;然后t1轉(zhuǎn)換成雙精度型,完成t1+t2,結(jié)果表示為t4;將t3轉(zhuǎn)換成雙精度型,完成t4+t3,最后結(jié)果轉(zhuǎn)為單精度型賦給x2。
具體規(guī)則:例:682.賦值類型轉(zhuǎn)換結(jié)束系統(tǒng)自動(dòng)進(jìn)行類型轉(zhuǎn)換規(guī)則:1、實(shí)型數(shù)賦給整型變量:取整;注意溢出;2、整型數(shù)賦給實(shí)型變量:先轉(zhuǎn)換為實(shí)型數(shù);3、字符型數(shù)賦給整型變量:ASCII碼為依據(jù);分為兩種情況:符號(hào)位是0或1時(shí)不同;若符號(hào)位為1,則低位字節(jié)不變,高位字節(jié)全部置1再賦值。4、絕對(duì)值較大的數(shù)賦給表達(dá)范圍較小的數(shù)據(jù)類型時(shí),注意溢出;2.賦值類型轉(zhuǎn)換結(jié)束系統(tǒng)自動(dòng)進(jìn)行類型轉(zhuǎn)換規(guī)則:69
賦值運(yùn)算中,當(dāng)左值與右值類型不一致時(shí),系統(tǒng)將按照左值的類型,自動(dòng)進(jìn)行強(qiáng)制轉(zhuǎn)換。例如: 設(shè)有以下定義doublex=2.3,y;inti=2,j;(1)jx……22(1)j=x; (2)y=i;由系統(tǒng)按左值j、y類型自動(dòng)完成強(qiáng)制轉(zhuǎn)換功能(2)y2i2……賦值運(yùn)算中,當(dāng)左值與右值類型不一致時(shí),例如: 703強(qiáng)制類型轉(zhuǎn)換ok強(qiáng)制類型轉(zhuǎn)換運(yùn)算符格式為:
(type)表達(dá)式 //形式一或type (表達(dá)式)
//形式二作用:將表達(dá)式強(qiáng)制轉(zhuǎn)換為type類型, 但表達(dá)式的值及其類型不變。設(shè)有變量說(shuō)明:inta=7,b=5;floatx;表達(dá)式x=a/b的值將為。如果希望表達(dá)式求出這兩個(gè)整數(shù)相除的實(shí)數(shù)商賦給x,就需要將兩個(gè)操作數(shù)或其中一個(gè)操作數(shù)進(jìn)行強(qiáng)制類型轉(zhuǎn)換??杀硎緸椋簒=(float)a/(float)b或x=(float)a/b3強(qiáng)制類型轉(zhuǎn)換ok強(qiáng)制類型轉(zhuǎn)換運(yùn)算符格式為:作用:將表達(dá)71說(shuō)明:(1)強(qiáng)制類型轉(zhuǎn)換不改變表達(dá)式本身的值類型,而是產(chǎn)生一個(gè)臨時(shí)變量,用來(lái)暫存轉(zhuǎn)換后的值,該臨時(shí)變量引用后即自動(dòng)釋放。如上例,執(zhí)行強(qiáng)制類型轉(zhuǎn)換后變量a和b的值及類型都不變,而是各自產(chǎn)生一個(gè)臨時(shí)變量,用這兩個(gè)臨時(shí)變量的值進(jìn)行運(yùn)算。(2)強(qiáng)制類型轉(zhuǎn)換符優(yōu)先級(jí)較高,只對(duì)緊隨其后的表達(dá)式起作用,而對(duì)其他部分不起作用。如表達(dá)式(float)a/b的含義是先將變量a強(qiáng)制轉(zhuǎn)換為浮點(diǎn)數(shù),然后與整數(shù)b運(yùn)算。新的C++標(biāo)準(zhǔn)中,強(qiáng)制類型轉(zhuǎn)換采用static_cast,const_cast,dynamic_cast,reinterpret_cast等4個(gè)關(guān)鍵字,形式為static_cast<type>,語(yǔ)法上更加嚴(yán)謹(jǐn)。說(shuō)明:721.6.5求值次序與副作用(選讀)
ok在符合優(yōu)先級(jí)和結(jié)合性的前提下,C語(yǔ)言的標(biāo)準(zhǔn)對(duì)表達(dá)式中各操作數(shù)的求值次序沒(méi)有做統(tǒng)一規(guī)定。編譯器為提高代碼質(zhì)量,在不影響優(yōu)先級(jí)和結(jié)合性的前提下也要對(duì)操作數(shù)的訪問(wèn)次序作調(diào)整。在安排順序時(shí),如果某個(gè)操作數(shù)經(jīng)歷了求值運(yùn)算,那么這個(gè)求值可能影響到其他操作數(shù)的值,這時(shí)就會(huì)產(chǎn)生副作用。例如:設(shè)inta=2,b=5,c;對(duì)表達(dá)式c=a*b+(++a)+(b=10)三個(gè)同級(jí)運(yùn)算中,是先算a*b,還是++a,還是b=10,其次再算哪個(gè)?顯然求值次序不同將導(dǎo)致結(jié)果不同。雖然C++規(guī)定該表達(dá)式的結(jié)合性是從左到右,不會(huì)導(dǎo)致副作用,但建議不要在表達(dá)式中改變操作數(shù)的值。上式改為:c=a*b;++a;b=10;c+=a+b;1.6.5求值次序與副作用(選讀)ok在符731.7數(shù)組與字符數(shù)組1.7.1數(shù)組1.7.2字符數(shù)組本節(jié)介紹一種用戶自定義的導(dǎo)出數(shù)據(jù)類型——數(shù)組類型ok1.7數(shù)組與字符數(shù)組1.7.1數(shù)741.7.1數(shù)組數(shù)組定義:數(shù)組是有限個(gè)同類型元素的有序集合,這些元素有一個(gè)共同的名字,每個(gè)元素以其在數(shù)組中的位置區(qū)分,位置用下標(biāo)表示。例如數(shù)列或向量就可以看作一個(gè)數(shù)組,其中的元素用一個(gè)下標(biāo)即可確定。矩陣也可看作一個(gè)數(shù)組,其中的元素需要用“行”、“列”兩個(gè)下標(biāo)確定。數(shù)組下標(biāo)的個(gè)數(shù)稱作維數(shù),上述代表數(shù)列的數(shù)組和代表矩陣的數(shù)組分別稱為一維數(shù)組和二維數(shù)組。本節(jié)只介紹一維數(shù)組。ok1.7.1數(shù)組數(shù)組定義:ok75一維數(shù)組一維數(shù)組的定義格式:
《存儲(chǔ)類型》數(shù)據(jù)類型數(shù)組名[常量];數(shù)據(jù)類型指的是數(shù)組中元素的數(shù)據(jù)類型,可以是C++中定義的任何一種數(shù)據(jù)類型。寫(xiě)在方括號(hào)中的常量用來(lái)定義數(shù)組大小,即數(shù)組中元素的個(gè)數(shù)。例如:intm[5];
//定義數(shù)組m,其中有5個(gè)整數(shù) constintN=3;
floatx[N]; //數(shù)組x中有3個(gè)實(shí)數(shù)ok一維數(shù)組一維數(shù)組的定義格式:ok76一維數(shù)組數(shù)組的存儲(chǔ):數(shù)組在存儲(chǔ)單元中是按下標(biāo)的順序連續(xù)存放的,數(shù)組名代表數(shù)組存儲(chǔ)區(qū)域的首地址。數(shù)組的元素:標(biāo)識(shí)方法是用數(shù)組名和下標(biāo):數(shù)組名[表達(dá)式]表達(dá)式用來(lái)計(jì)算下標(biāo)值。C++中規(guī)定數(shù)組第一個(gè)元素的下標(biāo)為0。okm[4]m[3]m[2]m[1]m[0]x[2]x[1]x[0]一維數(shù)組數(shù)組的存儲(chǔ):okm[4]m[377一維數(shù)組注意:C++中數(shù)組大小在編譯時(shí)確定,編譯系統(tǒng)按照定義為數(shù)組分配一段連續(xù)的存儲(chǔ)單元,這段單元的大小也是不能改變的,因此數(shù)組大小不能用變量定義,而只能是一個(gè)正整數(shù)常量。為避免使用時(shí)數(shù)組出界,通?!按蜷_(kāi)小用”。下列定義是非法的:intcount;floats[count];
//數(shù)組個(gè)數(shù)不能是變量,且必
//須在定義時(shí)指明;constfloatNum=3;intn[Num];
//數(shù)組個(gè)數(shù)不能是實(shí)數(shù);對(duì)數(shù)組的訪問(wèn)指的是對(duì)數(shù)組元素的訪問(wèn),不能直接將數(shù)組名作為訪問(wèn)對(duì)象,對(duì)數(shù)組賦值也必須對(duì)每一個(gè)元素逐個(gè)賦值。ok一維數(shù)組注意:ok78一維數(shù)組數(shù)組的初始化
數(shù)組初始化的方法是在定義時(shí)用大括號(hào)列出元素的值。例如:intscore[5]={88,92,90,85,78};初始化值的個(gè)數(shù)可以少于定義的元素個(gè)數(shù),這時(shí)從第0個(gè)元素開(kāi)始逐個(gè)取得初始化值,剩余的元素初始化為0。例如:floaty[5]={3.4,4.2,7};
//5個(gè)元素的取值分別為3.4,4.2,7,0,0對(duì)于定義時(shí)初始化的情況,可以不指明元素個(gè)數(shù),編譯器會(huì)按照初始化值的個(gè)數(shù)確定數(shù)組大小。例如:intn[]={1,2,3,4};
//數(shù)組n有4個(gè)元素intnn[];
//非法定義,必須指明數(shù)組元素個(gè)數(shù)ok一維數(shù)組數(shù)組的初始化ok79int_arr[3]=int_arr[2]=int_arr[1]=int_arr[0]=1123輸出:結(jié)束31+2=3【例1.2】使用數(shù)組的簡(jiǎn)單例子。#include<iostream>usingnamespacestd;intmain(){intint_arr[4];int_arr[0]=1;int_arr[1]=1;int_arr[2]=2;int_arr[3]=int_arr[1]+int_arr[2];cout<<int_arr[0]<<'\n';return0;}1123輸出:結(jié)束31+2=3【例1.2】使用數(shù)組的簡(jiǎn)單例子801.7.2字符數(shù)組字符數(shù)組定義:如果數(shù)組中的元素為字符,就稱為字符數(shù)組。例如:charstring1[10];
//可用來(lái)保存10個(gè)字符的字符數(shù)組charcity_name1[]={'N',
'a',
'n',
'j',
'i',
'n',
'g'};
//可用來(lái)保存7個(gè)字符的字符數(shù)組;字符串與字符數(shù)組:C++中用字符數(shù)組保存字符串。允許直接用字符串常量給字符數(shù)組初始化。例如:charcity_name2[]=”Nanjing”;用字符串初始化,字符數(shù)組會(huì)自動(dòng)加上一個(gè)串結(jié)束符'\0'。串結(jié)束符在字符串操作中具有十分重要的意義,因此在定義字符數(shù)組大小時(shí),要注意留出足夠的空間保存串結(jié)束符。ok1.7.2字符數(shù)組字符數(shù)組定義:ok811.7.2字符數(shù)組字符串處理函數(shù):字符串處理函數(shù)定義在頭文件<cstring>中,其中包括:strlen(s)//返回字符串s的實(shí)際長(zhǎng)度(不包括'\0
')strcpy(s1,s2)//將字符串s2中'\0
'之前的所有字符//依次賦值到字符串s1中,最后再加上一個(gè)'\0
'。由于不能直接對(duì)字符數(shù)組名賦值,所以將一個(gè)字符串的值賦給另一個(gè)字符串必須用字符串復(fù)制函數(shù)完成。例如:charstring2[20];string2=”VC++”;
//非法strcpy(string2,”VC++”);
//合法1.7.2字符數(shù)組字符串處理函數(shù):821.7.2字符數(shù)組【例1.3】字符數(shù)組和字符串處理函數(shù)的應(yīng)用。#include<iostream>#include<cstring>usingnamespacestd;intmain(){chars1[]="HelloC++";//初始化決定數(shù)組s1[]有10個(gè)元素chars2[10],s3[20];s2[0]='B';s2[1]=
'e';s2[2]=
'g';s2[3]=
'i';s2[4]=
'n';s2[5]=
'\0
';//對(duì)字符串結(jié)束處理非常重要strcpy(s3,s2);cout<<"Thelengthof\""<<s1<<"\"
is:"
<<strlen(s1)<<
'\n';cout<<s2<<
'\t'<<s3<<
'\n';return0}//只有字符數(shù)組可整體輸出,因?yàn)橛薪Y(jié)束符運(yùn)行結(jié)果:Thelengthof"
HelloC++"is:9BeginBegin結(jié)束1.7.2字符數(shù)組【例1.3】字符數(shù)組和字符串處理函831.8簡(jiǎn)單的輸入輸出1.8.1C++的輸入輸出簡(jiǎn)介1.8.2數(shù)據(jù)的輸入輸出ok1.8.3輸入輸出的格式控制1.8簡(jiǎn)單的輸入輸出1.8.1C++的輸入輸出簡(jiǎn)介1.84輸入流對(duì)象cin:cin用來(lái)在程序執(zhí)行期間給變量輸入數(shù)據(jù),一般格式為:cin>>變量名1《>>變量名2>>…>>變量名n》;
輸出流對(duì)象cout:cout實(shí)現(xiàn)將數(shù)據(jù)輸出到顯示器的操作,一般格式為:cout<<表達(dá)式1《<<表達(dá)式2<<…<<表達(dá)式n》;
使用時(shí)必須在程序開(kāi)頭增加兩行:#include
<iostream>usingnamespace
std;ok1.8.1C++輸入輸出簡(jiǎn)介輸入流對(duì)象cin:ok1.8.1C++輸入輸出簡(jiǎn)介851.8.2數(shù)據(jù)的輸入輸出(1)cin例如: charc1,c2,c3; cin>>c1; //A
cin>>c2>>c3;
程序執(zhí)行到A行時(shí),等待用戶輸入數(shù)據(jù)。若輸入:Abc<CR>則cin分別將字符A、b、c賦給變量c1、c2、c3。cin自動(dòng)跳過(guò)輸入的空白字符(包括空格,制表和回車(chē)等)。
ok1.字符的輸入輸出1.8.2數(shù)據(jù)的輸入輸出(1)cinok1.字符的輸入輸861.8.2數(shù)據(jù)的輸入輸出(2)cinget()例如: charc1,c2,c3,c4; (c1); //B (c2); (c3);程序執(zhí)行到B行時(shí),若輸入:Ab<CR>則執(zhí)行結(jié)果是:字符‘A’、空格、字符‘b’分別賦給變量c1、c2、c3;輸入行中仍保留回車(chē)符。
cin與cinget()的區(qū)別:
()把從鍵盤(pán)上輸入的所有字符,包括空白字符,都作為輸入字符賦給字符變量
ok1.8.2數(shù)據(jù)的輸入輸出(2)cinget()ok87字符的輸出:使用cout。假定字符c1、c2、c3的值分別為字符'a'、'b'和'c',執(zhí)行以下語(yǔ)句序列:cout<<c1<<'\t'<<c2<<'\n';cout<<c3<<endl;cout<<'O'<<'k'<<endl;屏幕上將輸出:a bcOk輸出時(shí)字符之間是無(wú)間隔的,如果想讓字符間有間隔,必須輸出間隔符
,如′\t′(制表符,自動(dòng)跳過(guò)若干字符位置)、′\n′或endl(基本含意一樣,表示回車(chē)換行,并清空緩沖區(qū))。
1.8.2數(shù)據(jù)的輸入輸出字符的輸出:1.8.2數(shù)據(jù)的輸入輸出882.字符串輸入輸出輸入:常用函數(shù)getline():(char[],int)其中第一個(gè)參數(shù)是已經(jīng)定義的字符數(shù)組名,第二個(gè)參數(shù)是讀入字符的最多個(gè)數(shù)n(包括字符串結(jié)束符'/0')。getline()輸入以用戶按下回車(chē)鍵作為結(jié)束。ok輸出:常用cout輸出字符串。雙引號(hào)中的字符串常量照原樣輸出,程序中通常通過(guò)輸出字符串常量來(lái)輸出一些提示信息。字符數(shù)組將輸出串結(jié)束符前所有字符。2.字符串輸入輸出輸入:常用函數(shù)getline():ok輸891.8.2數(shù)據(jù)的輸入輸出說(shuō)明:函數(shù)getline()保證在執(zhí)行時(shí)總會(huì)為字符串的結(jié)束符保留一個(gè)字節(jié)。當(dāng)鍵盤(pán)的輸入字符(字節(jié))數(shù)多于(n-1)時(shí),后面的字符不會(huì)進(jìn)入字符數(shù)組,字符串結(jié)束符自動(dòng)加在字符數(shù)組的最后一個(gè)字節(jié)中。當(dāng)輸入字符數(shù)少于該值時(shí),字符串結(jié)束符自動(dòng)加在輸入到字符數(shù)組中的最后一個(gè)字符的后面。例:charcity[11];cin.getline(city,10);
//將從輸入行中提取最多//9個(gè)字符,再加上一個(gè)‘\0’字符輸入到city中
cout<<“城市名:“<<city<<endl;ok1.8.2數(shù)據(jù)的輸入輸出說(shuō)明:ok90例:inti,j;floatx,y;cout<<”Inputi,j,x,y:”<<endl;cin>>i>>j; //Dcin>>x>>y; cout<<”i=”<<i<<'\t'<<”j=”<<j<<endl;cout<<”x+y=”<<x+y<<endl;若輸入:10204.58.6<CR>則程序輸出:i=10 j=20x+y輸出時(shí)各數(shù)據(jù)間是無(wú)間隔的,因此應(yīng)當(dāng)有意輸出一些間隔符ok3.十進(jìn)制數(shù)據(jù)的輸入輸出例:ok3.十進(jìn)制數(shù)據(jù)的輸入輸出91如果要求按八進(jìn)制或十六進(jìn)制輸入輸出,在cin或cout中必須指明相應(yīng)的數(shù)據(jù)形式,oct為八進(jìn)制,hex為十六進(jìn)制,dec為十進(jìn)制。進(jìn)制控制只適用于整數(shù)。例如:inti,j,k,l;cout<<"
Inputi(oct),j(hex),k(hex),l(dec):"
<<endl;cin>>oct>>i; //輸入為八進(jìn)制數(shù)cin>>hex>>j; //輸入為十六進(jìn)制數(shù)cin>>k; //輸入仍為十六進(jìn)制數(shù)cin>>dec>>l; //輸入為十進(jìn)制數(shù)cout<<"hex:"
<<"i="
<<hex<<i<<endl;cout<<"
dec:"
<<"j="
<<dec<<j<<'\t';cout<<"k="
<<k<<endl;cout<<"
oct:"
<<"l="
<<oct<<l;cout<<dec<<endl; //恢復(fù)十進(jìn)制輸出狀態(tài)ok1.8.3輸入輸出的格式控制(1)各種進(jìn)制數(shù)據(jù)的輸入輸出如果要求按八進(jìn)制或十六進(jìn)制輸入輸出,在cin或cout中必須92執(zhí)行時(shí)輸出提示:Inputi(oct),j(hex),k(hex),l(dec):此時(shí)從鍵盤(pán)輸入:0320x3f0xa017<CR>則輸出結(jié)果為:hex:i=1adec:j=63 k=160oct:l=21注意:使用不帶.h的頭文件<iostream>時(shí),必須在cin中指明數(shù)制,否則從鍵盤(pán)輸入時(shí),不認(rèn)八進(jìn)制和十六進(jìn)制數(shù)開(kāi)頭的0和0x標(biāo)志。指明后可省略0和0x標(biāo)志。注意:在cin或cout中指明數(shù)制后,該數(shù)制將一直有效,直到重新指明用其他數(shù)制。特別注意:輸入數(shù)據(jù)的格式、個(gè)數(shù)和類型必須與cin中的變量一一對(duì)應(yīng),否則不僅使輸入數(shù)據(jù)錯(cuò)誤,而且影響后面其他數(shù)據(jù)的正確輸入。執(zhí)行時(shí)輸出提示:931.8.3輸入輸出的格式控制為了使數(shù)據(jù)間隔開(kāi),還可以用C++提供的函數(shù)setw()指定輸出數(shù)據(jù)項(xiàng)的寬度。例如:inti=2,j=3;floatx=2.6,y=1.8;cout<<setw(6)<<i<<setw(10)<<j<<endl;cout<<setw(10)<<i*j<<endl;cout<<setw(8)<<x<<setw(8)<<y<<endl;輸出結(jié)果為:
2362.61.8使用setw()必須在程序的開(kāi)始處增加:#include
<iomanip>ok(2)設(shè)置數(shù)據(jù)間隔1.8.3輸入輸出的格式控制為了使數(shù)據(jù)間隔開(kāi),還可以用C94第一章C++基礎(chǔ)知識(shí)完謝謝!第一章C++基礎(chǔ)知識(shí)完95C++程序設(shè)計(jì)C++程序設(shè)計(jì)96計(jì)算機(jī)語(yǔ)言的基本體系結(jié)構(gòu)語(yǔ)言的基本體系結(jié)構(gòu)程序設(shè)計(jì)語(yǔ)言計(jì)算機(jī)語(yǔ)言的基本體系結(jié)構(gòu)語(yǔ)言的基本體系結(jié)構(gòu)程序設(shè)計(jì)語(yǔ)言97本章將簡(jiǎn)要介紹C++中的數(shù)據(jù)類型及相關(guān)運(yùn)算,以及常量、變量、表達(dá)式、語(yǔ)句等,最后介紹簡(jiǎn)單的輸入輸出方法。第一章C++基礎(chǔ)知識(shí)本章將簡(jiǎn)要介紹C++中的數(shù)據(jù)類型及相關(guān)運(yùn)算,以及常量、變量、98第一章C++基礎(chǔ)知識(shí)
C++的詞法單位
運(yùn)算符和表達(dá)式
簡(jiǎn)單的輸入輸出
數(shù)組與字符數(shù)組
常量和變量
C++中的數(shù)據(jù)類型ok1.1
C++語(yǔ)言概述
1.2一個(gè)C++程序?qū)嵗谝徽翪++基礎(chǔ)知識(shí)C++的詞法單位991.1C++語(yǔ)言概述
歷史:C++是由C語(yǔ)言為基礎(chǔ)發(fā)展起來(lái)的。C語(yǔ)言是作為UNIX操作系統(tǒng)的開(kāi)發(fā)語(yǔ)言為人們所認(rèn)識(shí)。七十年代末,C語(yǔ)言開(kāi)始移植到非UNIX環(huán)境中,并逐步脫離UNIX系統(tǒng)成為一種獨(dú)立的程序設(shè)計(jì)語(yǔ)言。1988年美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)ANSI對(duì)C語(yǔ)言進(jìn)行了標(biāo)準(zhǔn)化,產(chǎn)生了ANSIC。1.1C++語(yǔ)言概述歷史:1001.1C++語(yǔ)言概述
(1)C語(yǔ)言既具備高級(jí)語(yǔ)言的結(jié)構(gòu)和編程環(huán)境,又提供類似于匯編語(yǔ)言那樣的系統(tǒng)資源操縱能力及程序執(zhí)行效率。適合解決有實(shí)時(shí)要求的問(wèn)題。C語(yǔ)言的主要特點(diǎn):(2)有豐富的運(yùn)算符和數(shù)據(jù)類型,表達(dá)式類型多樣化,可以方便地實(shí)現(xiàn)在其他語(yǔ)言中較難實(shí)現(xiàn)的運(yùn)算,對(duì)各種不同類型的程序設(shè)計(jì)都有良好的適應(yīng)性。(3)以函數(shù)為基礎(chǔ)實(shí)現(xiàn)程序的結(jié)構(gòu)化設(shè)計(jì),支持大型程序的多文件構(gòu)成及單個(gè)文件獨(dú)立編譯,適合大型復(fù)雜程序的設(shè)計(jì)。(4)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。(5)可移植性好。1.1C++語(yǔ)言概述(1)C語(yǔ)言既具備高級(jí)語(yǔ)言的結(jié)構(gòu)和1011.1C++語(yǔ)言概述
C++是由C發(fā)展成為的以面向?qū)ο鬄橹饕卣鞯恼Z(yǔ)言。作為C語(yǔ)言的超集,C++繼承了C的所有優(yōu)點(diǎn),又對(duì)數(shù)據(jù)類型做了擴(kuò)充,使得編譯系統(tǒng)可以檢查出更多類型錯(cuò)誤。C++支持面向?qū)ο蟪绦蛟O(shè)計(jì),通過(guò)類和對(duì)象的概念把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝在一起,通過(guò)派生、繼承、重載和多態(tài)性等特征實(shí)現(xiàn)了軟件重用和程序自動(dòng)生成,使得大型復(fù)雜軟件的構(gòu)造和維護(hù)變得更加有效和容易。C++語(yǔ)言的主要特點(diǎn):1.1C++語(yǔ)言概述C++是由C發(fā)展成為的以面向?qū)ο鬄?021.1C++語(yǔ)言概述
C++與C完全兼容,很多用C編寫(xiě)的庫(kù)函數(shù)和應(yīng)用程序都可以為C++所用。但正是由于與C兼容,使得C++不是純正的面向?qū)ο蟮恼Z(yǔ)言,它既支持面向?qū)ο蟪绦蛟O(shè)計(jì),也支持面向過(guò)程設(shè)計(jì)。但我們應(yīng)當(dāng)注意用面向?qū)ο蟮乃枷脒M(jìn)行設(shè)計(jì),以發(fā)揮出C++的優(yōu)勢(shì)。C++語(yǔ)言的兼容性:1.1C++語(yǔ)言概述C++與C完全兼容,很多用C編寫(xiě)的1031.2一個(gè)C++程序?qū)嵗?include<iostream>usingnamespacestd;intmax(inti,intj){ //A
if(i>=j)returni;
else
returnj;}intmain(void){//Bcout<<″輸入i,j:″;//顯示提示信息
inti,j; //說(shuō)明變量cin>>i>>j;//從鍵盤(pán)上輸入變量值
cout<<″maxnumberis:″<<max(i,j)<<′\n′; //輸出提示和結(jié)果
return0;}【例1.1】
一個(gè)簡(jiǎn)單的C++程序。程序組成:注釋編譯預(yù)處理指令程序體由若干函數(shù)組成,其中有且僅有一個(gè)主函數(shù)main(),這是程序的執(zhí)行入口。在Windows編程中定義為winmain()。下面進(jìn)入VC++運(yùn)行1.2一個(gè)C++程序?qū)嵗?include<iostre1041.3C++的詞法單位1.3.1C++的字符集
1.3.2關(guān)鍵字
1.3.3標(biāo)識(shí)符(ID,identifier)1.3.4標(biāo)點(diǎn)符號(hào)
ok1.3C++的詞法單位1.3.1C++的字1051.3.1C++的字符集ASCII碼字符集是計(jì)算機(jī)中的常用字符集。它包括英文字母及阿拉伯?dāng)?shù)字等128個(gè)字符,存儲(chǔ)一個(gè)ASCII碼占用一個(gè)字節(jié)單元。漢字國(guó)標(biāo)碼用于漢字處理。國(guó)標(biāo)碼的存儲(chǔ)占用兩個(gè)字節(jié)單元。Unicode字符集對(duì)各類字符進(jìn)行統(tǒng)一的雙字節(jié)編碼。它包括了世界上多種語(yǔ)言的基本字符,最多可容納65536個(gè)字符。ASCII碼字符集,國(guó)標(biāo)碼字符集都是它的子集。ok常用字符集:1.3.1C++的字符集ASCII碼字符集是計(jì)算機(jī)中106C++的字符集26個(gè)小寫(xiě)字母
abcdefghijklmnopqrstuvwxyz26個(gè)大寫(xiě)字母
ABCDEFGHIJKLMNOPQRSTUVWXYZ10個(gè)阿拉伯?dāng)?shù)字
0123456789
其他符號(hào)
+-*/=,._:;?\"'~|!#%&()[]{}^<>空格C++語(yǔ)言基本字符:C++的字符集26個(gè)abcdefghijklmnopqrs1071.3.2關(guān)鍵字關(guān)鍵字(keyword):又稱保留字。是由系統(tǒng)定義的具有特定含義的英文單詞。關(guān)鍵字不能另作它用。C++區(qū)分大小寫(xiě),關(guān)鍵字全部由小寫(xiě)字母組成。標(biāo)準(zhǔn)C++(ISO14882)定義了74個(gè)關(guān)鍵字,具體的C++編譯器會(huì)做一些增刪。常用關(guān)鍵字及分類見(jiàn)表。ok1.3.2關(guān)鍵字關(guān)鍵字(keyword):C108關(guān)鍵字?jǐn)?shù)據(jù)類型說(shuō)明符與修飾符boolcharwchar_tclassconstdoubleenumfloatintlongshortsignedstructunionunsignedvoidvolatile存儲(chǔ)類型說(shuō)明符autoexterninlineregisterstatic訪問(wèn)說(shuō)明符friendprivateprotectedpublic其它說(shuō)明符asmexplicitnamespaceoperatortemplatethistypedeftypenameusingvirtual
語(yǔ)句與標(biāo)號(hào)breakcasecatchcontinuedefaultdoelseforgotoifreturnswitchthrowtrywhile
運(yùn)算符及邏輯值deletefalsenewsizeoftrue表2-1C++常用關(guān)鍵字及分類
ok關(guān)鍵字?jǐn)?shù)據(jù)類型說(shuō)明符與修飾符boo109關(guān)鍵字
還有一些關(guān)鍵字本書(shū)未介紹:
const_castdynamic_castreinterpret_caststatic_castexportmutabletypeid下面可用一些關(guān)鍵字代替邏輯運(yùn)算符:and
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股份代持與代管合同協(xié)議2篇
- 二零二五年度水利工程監(jiān)測(cè)與施工測(cè)量服務(wù)合同范本3篇
- 二零二五版新能源設(shè)備搬運(yùn)安裝合同細(xì)則3篇
- 2025年度航空航天器發(fā)動(dòng)機(jī)安裝與測(cè)試合同3篇
- 二零二五年度綠色交通設(shè)施招標(biāo)投標(biāo)合同6篇
- 展會(huì)參展資格合同(2篇)
- 二零二五版水利工程鋼筋加工與分包合同規(guī)范范本3篇
- 二零二五版室內(nèi)外景觀裝飾一體化合同3篇
- 2025年度文化演出活動(dòng)承辦合同3篇
- 二零二五版單位職工食堂員工健康體檢承包合同2篇
- 中建集團(tuán)面試自我介紹
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
- 警校生職業(yè)生涯規(guī)劃
- 意識(shí)障礙患者的護(hù)理診斷及措施
- 2024版《53天天練單元?dú)w類復(fù)習(xí)》3年級(jí)語(yǔ)文下冊(cè)(統(tǒng)編RJ)附參考答案
- 2025企業(yè)年會(huì)盛典
- 215kWh工商業(yè)液冷儲(chǔ)能電池一體柜用戶手冊(cè)
- 場(chǎng)地平整施工組織設(shè)計(jì)-(3)模板
- 交通設(shè)施設(shè)備供貨及技術(shù)支持方案
- 美容美發(fā)店火災(zāi)應(yīng)急預(yù)案
- 餐車(chē)移動(dòng)食材配送方案
評(píng)論
0/150
提交評(píng)論