C程序設(shè)計(jì)基礎(chǔ)第1章C語(yǔ)言概述_第1頁(yè)
C程序設(shè)計(jì)基礎(chǔ)第1章C語(yǔ)言概述_第2頁(yè)
C程序設(shè)計(jì)基礎(chǔ)第1章C語(yǔ)言概述_第3頁(yè)
C程序設(shè)計(jì)基礎(chǔ)第1章C語(yǔ)言概述_第4頁(yè)
C程序設(shè)計(jì)基礎(chǔ)第1章C語(yǔ)言概述_第5頁(yè)
已閱讀5頁(yè),還剩94頁(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ì)根底

-面向?qū)ο蠹癈++實(shí)現(xiàn)北華航天工業(yè)學(xué)院

1第一章C++語(yǔ)言概述2目標(biāo)理解程序設(shè)計(jì)的概念掌握C++程序的開(kāi)發(fā)過(guò)程掌握C++的運(yùn)算符和表達(dá)式掌握C++的數(shù)據(jù)類(lèi)型,包括根本數(shù)據(jù)類(lèi)型和構(gòu)造數(shù)據(jù)類(lèi)型熟練掌握根本控制語(yǔ)句的使用:if、switch、while、do~while、for掌握轉(zhuǎn)向語(yǔ)句:break、contiune語(yǔ)句的使用熟練掌握函數(shù)的使用31.1面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)1.1.1程序設(shè)計(jì)與程序設(shè)計(jì)語(yǔ)言1.1.2簡(jiǎn)單的C++程序1.1.3創(chuàng)立和運(yùn)行C++程序1.1.4VC++集成開(kāi)發(fā)環(huán)境41.1.1程序設(shè)計(jì)與程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)也是一門(mén)工程設(shè)計(jì),它是根據(jù)要解決的問(wèn)題,使用某種程序設(shè)計(jì)語(yǔ)言,設(shè)計(jì)出能夠完成這一任務(wù)的計(jì)算機(jī)指令序列。程序設(shè)計(jì)語(yǔ)言是人與計(jì)算機(jī)進(jìn)行交流的一種形式語(yǔ)言,是人利用計(jì)算機(jī)分析文問(wèn)題、解決問(wèn)題的一個(gè)根本工具。51.1.2簡(jiǎn)單的C++程序/* 源文件名:Ch1_01.cpp 功能:給出矩形的寬和高,計(jì)算矩形的周長(zhǎng)和面積,使用結(jié)構(gòu)化方法實(shí)現(xiàn)*/#include<iostream.h>voidmain(){ intwidth,height,girth,area; cout<<"請(qǐng)輸入矩形的寬和高:";//提示輸入信息 cin>>width>>height; //輸入兩個(gè)數(shù)據(jù)girth=(width+height)*2;//計(jì)算矩形周長(zhǎng) area=width*height;//計(jì)算矩形面積 cout<<"矩形:寬="<<width<<"高="<<height<<endl;//輸出數(shù)據(jù) cout<<"周長(zhǎng)="<<girth<<endl;cout<<"面積="<<area<<endl;}61.1.2簡(jiǎn)單的C++程序程序運(yùn)行后,屏幕顯示:請(qǐng)輸入矩形的寬和高:2015〔用戶(hù)輸入〕矩形:寬=20高=15周長(zhǎng)=70面積=30071.1.2簡(jiǎn)單的C++程序程序結(jié)構(gòu)分析:〔1〕“/*……*/〞是程序的注釋局部,注釋內(nèi)容是為增加程序的可讀性,系統(tǒng)不編譯注釋內(nèi)容,自動(dòng)忽略從“/*〞到“*/〞之間的內(nèi)容。C++中以“//〞開(kāi)頭直到本行結(jié)束的局部也是注釋。與“/*……*/〞的區(qū)別在于只能注釋一行,不能跨行,這種注釋也稱(chēng)為行注釋?zhuān)?*……*/〞注釋可以跨行,稱(chēng)為塊注釋。81.1.2簡(jiǎn)單的C++程序〔2〕#include<iostream.h>是一條編譯預(yù)處理命令,聲明該程序要使用iostream.h文件中的內(nèi)容,iostream.h文件中包含了輸入cin和輸出cout的定義。編譯時(shí)系統(tǒng)將頭文件iostream.h中的內(nèi)容嵌入到程序中該命令位置。91.1.2簡(jiǎn)單的C++程序〔3〕程序中定義了一個(gè)主函數(shù)main〔〕,其中main是函數(shù)名,void表示該函數(shù)返回值類(lèi)型。程序執(zhí)行從主函數(shù)開(kāi)始。〔4〕函數(shù)體中聲明變量的語(yǔ)句是:“intwidth,height,girth,area;〞,通知系統(tǒng)為變量分配存儲(chǔ)空間?!?〕函數(shù)體中的其他語(yǔ)句用于完成相應(yīng)功能,是函數(shù)體的重要組成局部。101.1.2簡(jiǎn)單的C++程序書(shū)寫(xiě)格式,盡量遵循以下根本原那么:〔1〕一般情況下一行只寫(xiě)一條語(yǔ)句。短語(yǔ)句可以一行寫(xiě)多條,長(zhǎng)語(yǔ)句可以分成多行來(lái)寫(xiě)。分行原那么是不能將一個(gè)單詞分開(kāi),用雙引號(hào)括起來(lái)的字符串最好也不要分開(kāi)?!?〕C++程序書(shū)寫(xiě)時(shí)要盡量提高可讀性。為此,采用適當(dāng)?shù)乜s進(jìn)格式書(shū)寫(xiě)程序是非常必要的,表示同一類(lèi)內(nèi)容或同一層次的語(yǔ)句要對(duì)齊?!?〕C++程序中大括號(hào){}使用較多,其書(shū)寫(xiě)方法也較多,建議用戶(hù)要養(yǎng)成使用大括號(hào){}的固定風(fēng)格。111.1.3創(chuàng)立和運(yùn)行C++程序C++源程序要經(jīng)過(guò)編輯、編譯、連接、運(yùn)行4個(gè)環(huán)節(jié),才能產(chǎn)生輸出結(jié)果。121.1.3創(chuàng)立和運(yùn)行C++程序1.編輯編輯是在一定的環(huán)境下進(jìn)行程序的輸入和修改正程。2.編譯編輯好的源程序不能被計(jì)算機(jī)理解,源程序必須經(jīng)過(guò)編譯,生成計(jì)算機(jī)能夠識(shí)別的機(jī)器代碼。編譯階段要進(jìn)行詞法分析和語(yǔ)法分析,又稱(chēng)源程序分析。131.1.3創(chuàng)立和運(yùn)行C++程序3.連接編譯后生成的目標(biāo)代碼還不能直接在計(jì)算機(jī)上運(yùn)行,其主要原因是編譯器對(duì)每個(gè)源程序文件分別進(jìn)行編譯,如果一個(gè)程序有多個(gè)源程序文件,編譯后這些源程序文件還分布在不同的地方。4.運(yùn)行一個(gè)C++源程序經(jīng)過(guò)編譯和連接后生成了可執(zhí)行文件后,就可以在Windows環(huán)境下直接雙擊該文件運(yùn)行該程序,也可以在VisualC++6.0的集成開(kāi)發(fā)環(huán)境下運(yùn)行。141.1.3創(chuàng)立和運(yùn)行C++程序C++程序的上機(jī)實(shí)現(xiàn)過(guò)程:〔1〕啟動(dòng)VisualC++6.0用戶(hù)可以單擊“開(kāi)始〞菜單,在“程序〞選項(xiàng)中選擇“MicrosoftVisualStudio6.0〞級(jí)聯(lián)菜單下的“MicrosoftVisualC++6.0〞,或在桌面上雙擊“MicrosoftVisualC++6.0〞的快捷方式,就會(huì)啟動(dòng)VisualC++6.0。151.1.3創(chuàng)立和運(yùn)行C++程序〔2〕在“文件〞菜單下,選擇“新建〞命令,將彈出“新建〞對(duì)話框選擇“工程〞標(biāo)簽下的“Win32ConsoleApplication〞選項(xiàng),可創(chuàng)立一個(gè)基于控制臺(tái)應(yīng)用程序的工程;在“工程〞編輯欄內(nèi)輸入創(chuàng)立的工程名稱(chēng)〔CH1_01〕;在“位置〞編輯欄內(nèi)輸入工程的保存位置〔E:\student〕,確保單項(xiàng)選擇按鈕“R創(chuàng)立新工作區(qū)〞被選定,其它選項(xiàng)選擇默認(rèn)值,單擊“確定〞按鈕將彈出“Win32ConsoleApplition〞工程步驟對(duì)話框。161.1.3創(chuàng)立和運(yùn)行C++程序〔3〕在工程步驟對(duì)話框中,選擇要?jiǎng)?chuàng)立應(yīng)用程序的類(lèi)型,共有4個(gè)選項(xiàng):“Anemptyproject.〞〔一個(gè)空工程〕“Asimpleapplication.〞〔一個(gè)簡(jiǎn)單應(yīng)用程序〕“A〞Hello,World“application.〞〔一個(gè)“世界,你好〞應(yīng)用程序〕“AnapplicationthatsupportMFC.〞〔一個(gè)支持MFC的應(yīng)用程序〕。例中選擇第1個(gè)選項(xiàng),創(chuàng)立一個(gè)空工程。171.1.3創(chuàng)立和運(yùn)行C++程序〔4〕單擊“確定〞按鈕,創(chuàng)立空工程的工作結(jié)束,回到VisualC++6.0的集成開(kāi)發(fā)環(huán)境。至此,系統(tǒng)為工程CH1_01自動(dòng)創(chuàng)立了E:\student\CH1_01文件夾,并在其中生成了CH1_01.dsp、CH1_01.dsw、CH1_01.ncb和Debug文件夾。181.1.3創(chuàng)立和運(yùn)行C++程序〔5〕在“文件〞菜單下,選擇“新建〞命令,在出現(xiàn)的對(duì)話框中選擇“文件〞標(biāo)簽,選擇“C++SourceFile〞選項(xiàng),創(chuàng)立一個(gè)C++源程序。然后在“文件〞編輯欄內(nèi)輸入創(chuàng)立的C++源程序名〔如CH1_01〕;在“目錄〞編輯欄內(nèi)輸入C++源程序的保存位置〔如e:\student\CH1_01〕。191.1.3創(chuàng)立和運(yùn)行C++程序〔6〕單擊“確定〞按鈕即可進(jìn)入代碼編輯窗口,代碼輸入完畢后,單擊“文件〞菜單中的“保存〞命令,或直接單擊工具欄上的“保存〞工具按鈕,保存C++源程序,文件名為CH1_01.cpp。〔7〕選擇“編譯〞菜單下的“編譯CH1_01.cpp〞項(xiàng)或單擊微型編譯工具欄中的“編譯程序〞工具按鈕,對(duì)C++源程序CH1_01.cpp進(jìn)行編譯。如果編譯有錯(cuò)誤,需要回到程序編輯窗口重新編輯,直到?jīng)]有錯(cuò)誤為止。201.1.3創(chuàng)立和運(yùn)行C++程序〔8〕編譯完成后,選擇命令:“編譯〞|“構(gòu)建CH1_01.exe〞或單擊微型編譯工具欄中的“構(gòu)建程序〞工具按鈕,如果沒(méi)有連接錯(cuò)誤,將生成可執(zhí)行文件CH1_01.exe?!?〕用戶(hù)可以在Windows環(huán)境下直接用鼠標(biāo)雙擊CH1_01.exe文件,或者單擊微型編譯工具欄中的“執(zhí)行程序〞工具按鈕,都可以執(zhí)行程序。211.1.3創(chuàng)立和運(yùn)行C++程序程序運(yùn)行后,將彈出一個(gè)窗體要求用戶(hù)輸入兩個(gè)整數(shù),從鍵盤(pán)輸入60和40,中間用空格分隔,回車(chē)。屏幕顯示程序的運(yùn)行結(jié)果。221.1.4VC++集成開(kāi)發(fā)環(huán)境VisualC++6.0是微軟公司開(kāi)發(fā)的可視化的C++集成開(kāi)發(fā)環(huán)境。它是集程序代碼的編輯、編譯、連接、調(diào)試等功能為一體,以一種方便、友好的界面提供給用戶(hù)。231.1.4VC++集成開(kāi)發(fā)環(huán)境1.菜單欄下面是一些最常用的菜單:〔1〕文件:用于創(chuàng)立、翻開(kāi)、關(guān)閉、保存一個(gè)新的文件、工程或工作區(qū)程。〔2〕編輯:用于文件的編輯,如文件的復(fù)制、粘貼、查找等操作?!?〕查看:用于翻開(kāi)、激活所需要的各種窗口,如工作區(qū)窗口、輸出窗口、屬性窗口等?!?〕插入:用于創(chuàng)立新的資源和類(lèi)等?!?〕工程:用于向工程中添加文件、設(shè)置活開(kāi)工程、工程屬性等。〔6〕編譯:用于程序的編譯、構(gòu)建、調(diào)試、運(yùn)行、工程和配置等?!?〕工具:用于選擇或定制集成開(kāi)發(fā)環(huán)境中的一些工具、宏操作等?!?〕窗口:用于窗口的排列、拆分、隱藏或顯示等。〔9〕幫助:提供幫助文件和關(guān)于等。241.1.4VC++集成開(kāi)發(fā)環(huán)境2.工具欄通過(guò)工具欄,可以快速地使用常見(jiàn)的菜單項(xiàng)選擇項(xiàng)。最常見(jiàn)的工具欄是標(biāo)準(zhǔn)工具欄。3.工作區(qū)窗口工作區(qū)窗口有ClassView〔類(lèi)視圖〕、ResourceView〔資源視圖〕和FileView〔文件視圖〕三個(gè)標(biāo)簽頁(yè),分別用來(lái)查看當(dāng)前工程所包含的所有類(lèi)、資源和文件。251.1.4VC++集成開(kāi)發(fā)環(huán)境〔1〕ClassView〔類(lèi)視圖〕,用于顯示當(dāng)前工作區(qū)工程的類(lèi),全局變量和函數(shù)?!?〕FileView〔文件視圖〕:FileView標(biāo)簽頁(yè)用于顯示當(dāng)前工程的源文件、頭文件、資源文件等。261.1.4VC++集成開(kāi)發(fā)環(huán)境4.輸出窗口輸出窗口有多個(gè)標(biāo)簽頁(yè),最常用的是“編譯〞。在編譯、連接、運(yùn)行過(guò)程中顯示系統(tǒng)提供的有關(guān)信息,如出錯(cuò)信息等。271.2數(shù)據(jù)類(lèi)型和表達(dá)式1.2.1根本語(yǔ)法成分1.2.2根本數(shù)據(jù)類(lèi)型1.2.3變量和常量1.2.4運(yùn)算符和表達(dá)式1.2.5數(shù)組類(lèi)型1.2.6結(jié)構(gòu)體和共用體1.2.7指針和引用281.2.1根本語(yǔ)法成分計(jì)算機(jī)語(yǔ)言是人與計(jì)算進(jìn)行交流的工具,它也有嚴(yán)格的字符集和嚴(yán)密的語(yǔ)法規(guī)那么。C++語(yǔ)言的根本要素是字符集,由字符集中的假設(shè)干字符按照一定的語(yǔ)法規(guī)那么組成C++程序中各種成分。下面介紹字符集、標(biāo)識(shí)符和關(guān)鍵字。291.2.1根本語(yǔ)法成分1.字符集C++語(yǔ)言的字符集包括:〔1〕大小寫(xiě)英文字母:A~Z,a~z〔2〕數(shù)字:0~9〔3〕特殊字符:空格!#%^&*_〔下劃線〕+-=~<>/\'";.,()[]{}∶301.2.1根本語(yǔ)法成分2.標(biāo)識(shí)符標(biāo)識(shí)符是用戶(hù)用來(lái)標(biāo)識(shí)程序中函數(shù)名,類(lèi)型名、常量名、變量名、對(duì)象名等實(shí)體而定義的單詞。C++語(yǔ)言中標(biāo)識(shí)符的命名規(guī)那么如下:〔1〕識(shí)符是由英文字母〔包括大寫(xiě)和小寫(xiě)〕、數(shù)字和下劃線組成,并且以字母和下劃線開(kāi)始,其后跟零個(gè)或多個(gè)字母、數(shù)字或下劃線。注意:標(biāo)識(shí)符不可以數(shù)字開(kāi)始。〔2〕標(biāo)識(shí)符區(qū)分大、小寫(xiě)字母。例如,Aa和aa是兩個(gè)不同的標(biāo)識(shí)符?!?〕標(biāo)識(shí)符的長(zhǎng)度是任意的,但有的編譯系統(tǒng)僅能識(shí)別前32個(gè)字符?!?〕標(biāo)識(shí)符不能和C++語(yǔ)言的關(guān)鍵字同名。311.2.1根本語(yǔ)法成分3.關(guān)鍵字關(guān)鍵字是C++系統(tǒng)用于特殊用途的單詞。下面列舉一些C++中常用的關(guān)鍵字:autobreakboolcasecharclassconstcontinue321.2.2根本數(shù)據(jù)類(lèi)型331.2.2根本數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型說(shuō)明占字節(jié)數(shù)范圍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×10308341.2.3變量和常量1.常量〔1〕整型常量整型常量即整型常數(shù),沒(méi)有小數(shù)局部,可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制3種形式來(lái)表示?!?〕浮點(diǎn)型常量浮點(diǎn)型常量又稱(chēng)實(shí)型常量,是由整數(shù)局部和小數(shù)局部組成的,只能用十進(jìn)制表示。浮點(diǎn)型常量有兩種表示方法:小數(shù)表示法和科學(xué)計(jì)數(shù)法。〔3〕字符常量C++中有兩種字符常量,即一般字符常量和轉(zhuǎn)義字符常量。351.2.3變量和常量〔4〕字符串常量字符串常量是用一對(duì)雙引號(hào)括起來(lái)的字符序列。〔5〕符號(hào)常量在C++中,可以用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常量,這個(gè)標(biāo)識(shí)符就是符號(hào)常量。361.2.3變量和常量C++語(yǔ)言提供了兩種定義符號(hào)常量的方法:①用const語(yǔ)句定義符號(hào)常量②用#define語(yǔ)句定義符號(hào)變量371.2.3變量和常量2.變量變量是指在程序運(yùn)行過(guò)程中其值可以變化的量。C++中變量使用前必須先定義。①變量的定義變量定義的一般格式為:數(shù)據(jù)類(lèi)型變量名1,變量名2,……

②變量賦值與初始化在使用已定義的變量前,要保證變量存儲(chǔ)的是確定的值。381.2.4運(yùn)算符和表達(dá)式C++中常見(jiàn)的表達(dá)式有:算術(shù)表達(dá)式關(guān)系表達(dá)式邏輯表達(dá)式條件表達(dá)式賦值表達(dá)式391.2.4運(yùn)算符和表達(dá)式使用運(yùn)算符時(shí),要注意以下幾點(diǎn):〔1〕運(yùn)算符實(shí)現(xiàn)的功能?!?〕操作數(shù)個(gè)數(shù)及類(lèi)型。〔3〕運(yùn)算符的優(yōu)先級(jí)別。即多個(gè)運(yùn)算符同時(shí)出現(xiàn)在同一個(gè)表達(dá)式時(shí),先進(jìn)行優(yōu)先級(jí)高的運(yùn)算,后作優(yōu)先級(jí)低的運(yùn)算。〔4〕運(yùn)算符的結(jié)合性。401.2.4運(yùn)算符和表達(dá)式常用的運(yùn)算符和表達(dá)式:1.算術(shù)運(yùn)算符及算術(shù)表達(dá)式C++中的算術(shù)運(yùn)算符有:+〔取正或加〕、-〔取負(fù)或減〕、*〔乘〕、/〔除〕、%〔取余〕、++〔增1〕、--〔減1〕。其中+〔取正〕、-〔取負(fù)〕、++〔增1〕、--〔減1〕是單目運(yùn)算符,其余是雙目運(yùn)算符。411.2.4運(yùn)算符和表達(dá)式2.關(guān)系運(yùn)算符及關(guān)系表達(dá)式關(guān)系運(yùn)算是比較兩個(gè)操作數(shù)的大小,其結(jié)果是一個(gè)布爾型的值。當(dāng)兩個(gè)操作數(shù)滿(mǎn)足關(guān)系運(yùn)算符指定的關(guān)系時(shí),表達(dá)式的值為true,否那么為false。在C++中,關(guān)系運(yùn)算符都是雙目運(yùn)算符,共有6個(gè):<〔小于〕、<=〔小于或等于〕、>〔大于〕、〔大于或等于〕、==〔等于〕、!=〔不等于〕。其中前4種和后2種屬于不同的優(yōu)先級(jí),前4種的優(yōu)先級(jí)高于后2種。421.2.4運(yùn)算符和表達(dá)式3.邏輯運(yùn)算符及邏輯表達(dá)式邏輯運(yùn)算符共有3個(gè):1個(gè)單目運(yùn)算符!〔邏輯求反〕,2個(gè)雙目運(yùn)算符&&〔邏輯與〕和||〔邏輯或〕。其中邏輯與的優(yōu)先級(jí)比邏輯或高。邏輯運(yùn)算的結(jié)果是邏輯值。參與邏輯運(yùn)算的操作數(shù)可以是任一根本類(lèi)型的數(shù)據(jù),在進(jìn)行判斷時(shí),系統(tǒng)將非零值作為真,零為假。431.2.4運(yùn)算符和表達(dá)式4.賦值運(yùn)算符和賦值表達(dá)式C++中的賦值運(yùn)算符分為兩種:簡(jiǎn)單賦值運(yùn)算符〔“=〞〕復(fù)合賦值運(yùn)算符〔+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=?!?。賦值運(yùn)算符都是二元運(yùn)算符、右結(jié)合。由賦值運(yùn)算符和操作數(shù)組成的表達(dá)式稱(chēng)為賦值表達(dá)式。441.2.4運(yùn)算符和表達(dá)式5.位運(yùn)算符C++提供了6個(gè)位運(yùn)算符:~〔按位求反〕、&〔按位與〕、|〔按位或〕、^〔按位異或〕、<<〔右移位〕、>>〔左移位〕。其中~〔按位求反〕是單目運(yùn)算符,其余都是雙目運(yùn)算符。位運(yùn)算符是對(duì)其操作數(shù)按二進(jìn)制形式逐位進(jìn)行運(yùn)算,參與運(yùn)算的操作數(shù)都應(yīng)為整數(shù),不能是實(shí)型數(shù)。451.2.4運(yùn)算符和表達(dá)式6.條件運(yùn)算符條件運(yùn)算符“?:〞是C++中唯一的一個(gè)三目運(yùn)算符,其使用的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3461.2.4運(yùn)算符和表達(dá)式7.逗號(hào)運(yùn)算符由逗號(hào)運(yùn)算符構(gòu)成的表達(dá)式稱(chēng)為逗號(hào)表達(dá)式,其一般形式為:表達(dá)式1,表達(dá)式2,…,表達(dá)式n逗號(hào)表達(dá)式的執(zhí)行規(guī)那么是從左到右,逐個(gè)表達(dá)式執(zhí)行,最后一個(gè)表達(dá)式的值是該逗號(hào)表達(dá)式的值。注意:逗號(hào)運(yùn)算符“,〞的優(yōu)先級(jí)最低。471.2.4運(yùn)算符和表達(dá)式8.表達(dá)式中數(shù)據(jù)類(lèi)型的轉(zhuǎn)換〔1〕自動(dòng)轉(zhuǎn)換〔2〕強(qiáng)制轉(zhuǎn)換其一般形式為:數(shù)據(jù)類(lèi)型〔表達(dá)式〕或〔數(shù)據(jù)類(lèi)型〕表達(dá)式481.2.5數(shù)組類(lèi)型1.一維數(shù)組定義一維數(shù)組的一般格式為:

<數(shù)據(jù)類(lèi)型><數(shù)組名>[長(zhǎng)度]例如:intA[100]表示數(shù)組名為A,該數(shù)組有100個(gè)元素,數(shù)組元素的類(lèi)型為整型。491.2.5數(shù)組類(lèi)型在定義一維數(shù)組時(shí)要注意以下幾點(diǎn):〔1〕數(shù)據(jù)類(lèi)型是指數(shù)組元素的類(lèi)型?!?〕數(shù)組名的命名規(guī)那么要遵循C++關(guān)于標(biāo)識(shí)符的命名規(guī)那么。〔3〕數(shù)組元素的下從0開(kāi)始到長(zhǎng)度減1,C++對(duì)數(shù)組下標(biāo)越界不做檢查。〔4〕必須說(shuō)明數(shù)組的長(zhǎng)度,且這個(gè)長(zhǎng)度要用一個(gè)確定的正整數(shù)常量或常量表達(dá)式來(lái)表示。501.2.5數(shù)組類(lèi)型2.二維數(shù)組二維數(shù)組定義的一般形式為:

<數(shù)組類(lèi)型><數(shù)組名>[長(zhǎng)度][長(zhǎng)度]例如:inta[4][3]就定義了一個(gè)二維數(shù)組a,其數(shù)據(jù)元素為a[0][0]、a[0][1]……a[4][3]。引用二維數(shù)組元素的格式為:<數(shù)組名>[<行下標(biāo)>][<列下標(biāo)>]例如:inta[2][3];511.2.5數(shù)組類(lèi)型3.字符數(shù)組字符數(shù)組是一個(gè)字符類(lèi)型的數(shù)組,它用來(lái)存放字符或字符串,其中每一個(gè)數(shù)組元素對(duì)應(yīng)一個(gè)字符。字符數(shù)組定義的格式為:char數(shù)組名[長(zhǎng)度];521.2.6結(jié)構(gòu)體和共用體1.結(jié)構(gòu)體由數(shù)目固定的成員構(gòu)成,各成員可以具有不同的數(shù)據(jù)類(lèi)型。一個(gè)結(jié)構(gòu)變量在內(nèi)存占有一片連續(xù)的存儲(chǔ)空間C++中結(jié)構(gòu)體定義的一般語(yǔ)法形式為:struct結(jié)構(gòu)體名{類(lèi)型成員1;類(lèi)型成員2;┇類(lèi)型成員n;};

531.2.6結(jié)構(gòu)體和共用體結(jié)構(gòu)體是一種特殊的數(shù)據(jù)類(lèi)型,結(jié)構(gòu)體的定義僅僅是給出了該結(jié)構(gòu)體的組成情況,它和根本數(shù)據(jù)類(lèi)型int、double等一樣,系統(tǒng)并不為其分配實(shí)際的存儲(chǔ)單元。為了使用它,必須定義結(jié)構(gòu)體變量。結(jié)構(gòu)體變量聲明的一般格式如下:結(jié)構(gòu)體結(jié)構(gòu)體變量;或結(jié)構(gòu)體結(jié)構(gòu)體變量;541.2.6結(jié)構(gòu)體和共用體結(jié)構(gòu)體變量初始化的一般格式為:struct結(jié)構(gòu)體名結(jié)構(gòu)體變量名={初值};或結(jié)構(gòu)體名結(jié)構(gòu)體變量名={初值};結(jié)構(gòu)體成員引用的一般格式為:結(jié)構(gòu)體變量.成員名其中,符號(hào)“.〞是成員運(yùn)算符,用于訪問(wèn)一個(gè)結(jié)構(gòu)體變量中的某個(gè)結(jié)構(gòu)體成員。551.2.6結(jié)構(gòu)體和共用體共用體共用體同結(jié)構(gòu)體一樣,也是一種自定義的數(shù)據(jù)類(lèi)型,由假設(shè)干數(shù)據(jù)成員組成。雖然共用體與結(jié)構(gòu)體有很多相似之處,但兩者還是有本質(zhì)區(qū)別的。在任一時(shí)刻,結(jié)構(gòu)體中的所有成員都是有意義的,而共用體中只有一個(gè)成員有意義。這種不同反映到存儲(chǔ)空間分配上就是結(jié)構(gòu)體變量各成員順序存放在一段內(nèi)存中,每個(gè)成員分別占有自己的內(nèi)存單元,結(jié)構(gòu)體變量所占存儲(chǔ)空間的大小等于其所有數(shù)據(jù)成員所占存儲(chǔ)空間的總和。而共用體變量的各成員均從同一地址開(kāi)始存放,共同占用同一存儲(chǔ)空間,即各成員所占用的存儲(chǔ)空間是相互覆蓋的。561.2.6結(jié)構(gòu)體和共用體共用體定義的一般形式為:union共用體名{數(shù)據(jù)類(lèi)型成員1;數(shù)據(jù)類(lèi)型成員2; ┇數(shù)據(jù)類(lèi)型成員n};共用體類(lèi)型變量說(shuō)明的一般語(yǔ)法形式為:共用體共用體變量名;571.2.7指針和引用1.指針的根本概念C++程序中定義變量,在編譯時(shí)系統(tǒng)為每一個(gè)變量分配內(nèi)存空間。。所謂指針就是一個(gè)存儲(chǔ)單元的地址值,用來(lái)存放地址〔即指針〕的變量也稱(chēng)指針變量。指針是一個(gè)變量,必須先聲明后使用。指針變量聲明的一般形式如下:數(shù)據(jù)類(lèi)型*標(biāo)識(shí)符;581.2.7指針和引用與指針有關(guān)的根本運(yùn)算符有以下兩個(gè):〔1〕取地址運(yùn)算符&:&變量名。用來(lái)獲取變量的首地址?!?〕間接訪問(wèn)運(yùn)算符*:*指針變量名。也稱(chēng)“指向運(yùn)算符〞或“取內(nèi)容運(yùn)算符〞,表示訪問(wèn)該指針變量所指向的變量的值,即訪問(wèn)指針?biāo)赶虻拇鎯?chǔ)單元的內(nèi)容。591.2.7指針和引用2.指針的賦值如果用戶(hù)聲明了一個(gè)指針變量,在使用該指針變量之前必須對(duì)它賦初值。否那么,在程序中使用該指針變量就有可能導(dǎo)致系統(tǒng)崩潰。例如:inti,*p1=&i;int*p2=p1;601.2.7指針和引用3.指針的運(yùn)算指針是一個(gè)變量,其值是一個(gè)地址。因此,它只能參與賦值、算術(shù)及關(guān)系運(yùn)算?!?〕算術(shù)運(yùn)算〔2〕關(guān)系運(yùn)算兩個(gè)指針進(jìn)行關(guān)系運(yùn)算時(shí),它們必須指向同一連續(xù)存儲(chǔ)空間。611.2.7指針和引用4.多級(jí)指針由于指針是一個(gè)變量,在內(nèi)存中占據(jù)一定的存儲(chǔ)空間,具有一個(gè)地址,這個(gè)地址也可以利用指針來(lái)保存。聲明二級(jí)指針的格式為:

數(shù)據(jù)類(lèi)型**標(biāo)識(shí)符

621.2.7指針和引用5.指針與數(shù)組在C++語(yǔ)言中,指針與數(shù)組之間存在著密切的關(guān)系。它們都可以處理內(nèi)存中連續(xù)存放的一系列數(shù)據(jù),數(shù)組和指針在訪問(wèn)內(nèi)存時(shí)采用相同的計(jì)算方法,在某些場(chǎng)合下指針和數(shù)組的表現(xiàn)形式具有相同的意義。使用下標(biāo)法對(duì)內(nèi)存中的數(shù)組元素進(jìn)行處理,指針和數(shù)組表現(xiàn)形式具有相同的意義,因?yàn)橹羔樅蛿?shù)組名都是地址量。631.2.7指針和引用6.指針與字符串在C++語(yǔ)言中,字符串用字符數(shù)組來(lái)處理,有時(shí)也把字符串稱(chēng)為字符數(shù)組。例如:charstr1[]="HelloWorld!";char*pstr=str;cout<<pstr[6]<<endl;//輸出'W'字符641.2.7指針和引用7.內(nèi)存動(dòng)態(tài)分配C++語(yǔ)言提供了內(nèi)存動(dòng)態(tài)分配的方法。所謂內(nèi)存動(dòng)態(tài)分配是指在程序運(yùn)行期間根據(jù)實(shí)際需要申請(qǐng)內(nèi)存空間,并在不需要時(shí)釋放,它是一種在程序運(yùn)行時(shí)動(dòng)態(tài)申請(qǐng)和釋放內(nèi)存的技術(shù)。使用運(yùn)算符new和delete進(jìn)行內(nèi)存動(dòng)態(tài)分配和釋放,相應(yīng)地把內(nèi)存的申請(qǐng)和釋放過(guò)程稱(chēng)作創(chuàng)立和刪除。651.2.7指針和引用〔1〕運(yùn)算符new運(yùn)算符new用于申請(qǐng)所需的內(nèi)存空間。它的一般格式如下:<數(shù)據(jù)類(lèi)型>*<指針變量>=new<數(shù)據(jù)類(lèi)型>;動(dòng)態(tài)創(chuàng)立數(shù)組的一般格式如下:<數(shù)據(jù)類(lèi)型>*<指針變量>=new數(shù)據(jù)類(lèi)型[長(zhǎng)度];661.2.7指針和引用〔2〕運(yùn)算符delete當(dāng)程序中不再需要使用運(yùn)算符new申請(qǐng)到的內(nèi)存空間時(shí),必須要使用運(yùn)算符delete來(lái)釋放空間。一般操作形式如下:delete指針名;//釋放非數(shù)組內(nèi)存單元delete[]指針名;//釋放數(shù)組內(nèi)存單元671.2.7指針和引用8.引用在C++語(yǔ)言中,提供了一種為變量起一個(gè)別名的機(jī)制,這個(gè)別名就是引用。聲明引用的一般格式如下:數(shù)據(jù)類(lèi)型&引用名=變量名;或數(shù)據(jù)類(lèi)型&引用名(變量名);

681.2.7指針和引用使用引用應(yīng)注意以下幾點(diǎn):〔1〕聲明引用時(shí),必須要初始化?!?〕一旦為一個(gè)變量聲明了一個(gè)引用,該引用就不能再作為其它變量的引用?!?〕引用和其所代表的變量使用同一片存儲(chǔ)空間,它并不另外占用存儲(chǔ)空間。〔4〕對(duì)引用的操作就是對(duì)被引用變量的操作。691.3程序控制結(jié)構(gòu)1.3.1語(yǔ)句1.3.2選擇語(yǔ)句1.3.3循環(huán)語(yǔ)句1.3.4轉(zhuǎn)向語(yǔ)句

701.3.1語(yǔ)句C++支持結(jié)構(gòu)化程序設(shè)計(jì),結(jié)構(gòu)化程序有三種根本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。表達(dá)式語(yǔ)句空語(yǔ)句復(fù)合語(yǔ)句711.3.2選擇語(yǔ)句1.if語(yǔ)句if語(yǔ)句用來(lái)有條件地執(zhí)行某一語(yǔ)句系列。if語(yǔ)句主要有以下幾種形式:〔1〕if〔表達(dá)式〕{語(yǔ)句;}721.3.2選擇語(yǔ)句〔2〕if〔表達(dá)式〕{語(yǔ)句1;}else{語(yǔ)句2;}〔3〕if〔表達(dá)式1〕<語(yǔ)句1>elseif〔表達(dá)式2〕<語(yǔ)句2>elseif〔表達(dá)式3〕<語(yǔ)句3> ┇elseif〔表達(dá)式n〕<語(yǔ)句n>else<語(yǔ)句n+1>731.3.2選擇語(yǔ)句2.switch語(yǔ)句在if語(yǔ)句嵌套使用時(shí),如果嵌套層數(shù)太多,將使程序變得難于理解。為此,C++語(yǔ)言提供了switch語(yǔ)句來(lái)簡(jiǎn)化這一過(guò)程。switch語(yǔ)句又稱(chēng)開(kāi)關(guān)語(yǔ)句,其一般語(yǔ)法格式為:switch〔表達(dá)式〕{case常量表達(dá)式1:語(yǔ)句1;case常量表達(dá)式2:語(yǔ)句2; ┇case常量表達(dá)式n:語(yǔ)句n;default:語(yǔ)句n+1;}741.3.3循環(huán)語(yǔ)句1.while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句的語(yǔ)法格式為:while〔表達(dá)式〕{循環(huán)體語(yǔ)句;}751.3.3循環(huán)語(yǔ)句2.do-while循環(huán)語(yǔ)句do-while循環(huán)語(yǔ)句的語(yǔ)法形式為:do{循環(huán)體語(yǔ)句;}while(表達(dá)式);761.3.3循環(huán)語(yǔ)句3.for循環(huán)語(yǔ)句for循環(huán)語(yǔ)句比while循環(huán)語(yǔ)句和do-while循環(huán)語(yǔ)句功能更為強(qiáng)大。for循環(huán)語(yǔ)句的一般語(yǔ)法格式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體語(yǔ)句;}771.3.3循環(huán)語(yǔ)句在使用for循環(huán)語(yǔ)句時(shí),注意以下幾種情況:〔1〕for語(yǔ)句中的3個(gè)表達(dá)式可以沒(méi)有。但每個(gè)表達(dá)式后的分號(hào)不能省略。此時(shí)for循環(huán)語(yǔ)句的形式為:for(;;)這時(shí)在循環(huán)體內(nèi)必須有其他控制循環(huán)執(zhí)行的語(yǔ)句,否那么會(huì)形成死循環(huán)。〔2〕表達(dá)式1如果不存在或不是用來(lái)給循環(huán)變量賦初值,那么應(yīng)在for語(yǔ)句前給循環(huán)變量賦初值。〔3〕表達(dá)式2如果不存在,那么在for語(yǔ)句循環(huán)體內(nèi)應(yīng)有其他控制循環(huán)執(zhí)行的語(yǔ)句,否那么會(huì)形成死循環(huán)?!?〕表達(dá)式3如果不存在或不是用來(lái)修改循環(huán)變量的值,那么應(yīng)在for語(yǔ)句循環(huán)體內(nèi)設(shè)置相應(yīng)的語(yǔ)句。781.3.4轉(zhuǎn)向語(yǔ)句1.goto語(yǔ)句goto語(yǔ)句一般語(yǔ)法格式為:goto語(yǔ)句標(biāo)號(hào);2.break語(yǔ)句break語(yǔ)句的一般語(yǔ)法格式如下:break;3.continue語(yǔ)句continue語(yǔ)句的一般語(yǔ)法格式為:continue;791.4函數(shù)1.4.1函數(shù)的定義和說(shuō)明1.4.2函數(shù)的調(diào)用1.4.3函數(shù)的參數(shù)1.4.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用1.4.5作用域和存儲(chǔ)類(lèi)型1.4.6內(nèi)聯(lián)函數(shù)1.4.7函數(shù)重載1.4.8字符串處理函數(shù)801.4.1函數(shù)的定義和說(shuō)明函數(shù)定義的一般語(yǔ)法格式如下:函數(shù)類(lèi)型函數(shù)名(參數(shù)表){函數(shù)體;}C++最重要的特征之一是函數(shù)原型。函數(shù)原型的說(shuō)明一般語(yǔ)法格式為:類(lèi)型函數(shù)名〔參數(shù)列表〕;811.4.2函數(shù)的調(diào)用1.函數(shù)調(diào)用的概念函數(shù)調(diào)用是用一個(gè)表達(dá)式來(lái)表示的。其調(diào)用的一般格式為:函數(shù)名〔實(shí)參列表〕要求實(shí)參與形參的個(gè)數(shù)相同、類(lèi)型一致、順序一致。821.4.2函數(shù)的調(diào)用函數(shù)的返回值是在被調(diào)用函數(shù)中,通過(guò)返回語(yǔ)句return來(lái)實(shí)現(xiàn)的。返回語(yǔ)句return有兩個(gè)重要的作用:其一是使函數(shù)立即返回到其主調(diào)程序,其二是返回某個(gè)值。函數(shù)有兩種返回情況,一種是無(wú)返回值,一種是有返回值。當(dāng)函數(shù)無(wú)返回值時(shí),函數(shù)類(lèi)型必須用關(guān)鍵字void加以說(shuō)明。831.4.3函數(shù)的參數(shù)1.傳值調(diào)用這種方法是用參數(shù)傳遞數(shù)據(jù)的最常用的方法。傳值調(diào)用是指函數(shù)調(diào)用時(shí),給形參分配存儲(chǔ)空間,系統(tǒng)計(jì)算實(shí)參表達(dá)式的值,并把實(shí)參的值按順序賦給對(duì)應(yīng)的形式參數(shù),即對(duì)形參進(jìn)行初始化,然后執(zhí)行函數(shù)體。841.4.3函數(shù)的參數(shù)2.傳址調(diào)用使用傳址調(diào)用方式時(shí),形參是指針變量,實(shí)參是地址值,由主調(diào)程序向被調(diào)用函數(shù)傳遞地址。在函數(shù)調(diào)用時(shí),把實(shí)參數(shù)地址賦給形式參數(shù),形參和實(shí)參都表示同一地址中的值。因此,形參所指向內(nèi)容的任何改變都會(huì)導(dǎo)致實(shí)參所指向內(nèi)容的改變。851.4.3函數(shù)的參數(shù)3.引用調(diào)用引用也是一種特殊類(lèi)型的變量,它不同于指針。引用是為程序中變量取一個(gè)別名,引用作為函數(shù)的參數(shù)時(shí),形參是實(shí)參的引用,那么形參和實(shí)參指的是同一個(gè)變量,在函數(shù)調(diào)用中對(duì)形參的改變實(shí)際上就是對(duì)實(shí)參的改變。861.4.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用1.函數(shù)的嵌套調(diào)用程序從主函數(shù)開(kāi)始執(zhí)行,遇到函數(shù)調(diào)用時(shí),如果函數(shù)是有參函數(shù),C++先進(jìn)行實(shí)參對(duì)形參的替換,然后執(zhí)行被調(diào)用函數(shù)的函數(shù)體。如果函數(shù)體中還調(diào)用其他函數(shù),再轉(zhuǎn)入執(zhí)行其他函數(shù)體。函數(shù)體執(zhí)行完畢后,返回到主調(diào)函數(shù),繼續(xù)執(zhí)行主調(diào)函數(shù)中的后續(xù)程序行。假設(shè)在一個(gè)函數(shù)中又調(diào)用另一個(gè)函數(shù),那么稱(chēng)這樣的調(diào)用過(guò)程為函數(shù)的嵌套調(diào)用871.4.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用2.函數(shù)的遞歸調(diào)用在調(diào)用一個(gè)函數(shù)的過(guò)程中出現(xiàn)直接或間接調(diào)用該函數(shù)本身,稱(chēng)作函數(shù)的遞歸調(diào)用。這樣的函數(shù)稱(chēng)為遞歸函數(shù)。編寫(xiě)遞歸函數(shù)時(shí),必須有終止遞歸調(diào)用的條件。881.4.5作用域和存儲(chǔ)類(lèi)型1.作用域作用域是一個(gè)標(biāo)識(shí)符在程序中有效范圍。C++的作用域有函數(shù)原型作用域、塊作用域、函數(shù)作用域和文件作用域。函數(shù)原型參數(shù)列表中的標(biāo)識(shí)符具有函數(shù)原型作用域。函數(shù)原型只需要參數(shù)的類(lèi)型,并不需要參數(shù)名。參數(shù)名只在函數(shù)原型聲明的兩個(gè)圓括號(hào)內(nèi)有效。891.4.5作用域和存儲(chǔ)類(lèi)型塊作用域又稱(chēng)局部作用域。在一個(gè)復(fù)合語(yǔ)句內(nèi)聲明的標(biāo)識(shí)符具有塊作用域,其作用域是從聲明處開(kāi)始,一直到復(fù)合語(yǔ)句結(jié)束的花括號(hào)為止。由于函數(shù)體在句法上可以看作一個(gè)復(fù)合語(yǔ)句,所以函數(shù)中聲明的標(biāo)識(shí)符具有塊作用域。另外函數(shù)的形參也屬于塊作用域。901.4.5作用域和存儲(chǔ)類(lèi)型2.局部變量和全局變量局部變量具有局部作用域。局部變量?jī)H在定義它的函數(shù)或類(lèi)內(nèi)起作用,在這個(gè)范圍之外不能使用這些變量。全局變量是在函數(shù)和類(lèi)外部定義的變量。全局變量的作用域從說(shuō)明點(diǎn)開(kāi)始直到文件的結(jié)束。這種作用域也稱(chēng)為文件作用域。911.4.5作用域和存儲(chǔ)類(lèi)型

溫馨提示

  • 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)論