版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計根底
-面向?qū)ο蠹癈++實現(xiàn)北華航天工業(yè)學(xué)院
1第一章C++語言概述2目標(biāo)理解程序設(shè)計的概念掌握C++程序的開發(fā)過程掌握C++的運(yùn)算符和表達(dá)式掌握C++的數(shù)據(jù)類型,包括根本數(shù)據(jù)類型和構(gòu)造數(shù)據(jù)類型熟練掌握根本控制語句的使用:if、switch、while、do~while、for掌握轉(zhuǎn)向語句:break、contiune語句的使用熟練掌握函數(shù)的使用31.1面向?qū)ο蟪绦蛟O(shè)計入門1.1.1程序設(shè)計與程序設(shè)計語言1.1.2簡單的C++程序1.1.3創(chuàng)立和運(yùn)行C++程序1.1.4VC++集成開發(fā)環(huán)境41.1.1程序設(shè)計與程序設(shè)計語言程序設(shè)計也是一門工程設(shè)計,它是根據(jù)要解決的問題,使用某種程序設(shè)計語言,設(shè)計出能夠完成這一任務(wù)的計算機(jī)指令序列。程序設(shè)計語言是人與計算機(jī)進(jìn)行交流的一種形式語言,是人利用計算機(jī)分析文問題、解決問題的一個根本工具。51.1.2簡單的C++程序/* 源文件名:Ch1_01.cpp 功能:給出矩形的寬和高,計算矩形的周長和面積,使用結(jié)構(gòu)化方法實現(xiàn)*/#include<iostream.h>voidmain(){ intwidth,height,girth,area; cout<<"請輸入矩形的寬和高:";//提示輸入信息 cin>>width>>height; //輸入兩個數(shù)據(jù)girth=(width+height)*2;//計算矩形周長 area=width*height;//計算矩形面積 cout<<"矩形:寬="<<width<<"高="<<height<<endl;//輸出數(shù)據(jù) cout<<"周長="<<girth<<endl;cout<<"面積="<<area<<endl;}61.1.2簡單的C++程序程序運(yùn)行后,屏幕顯示:請輸入矩形的寬和高:2015〔用戶輸入〕矩形:寬=20高=15周長=70面積=30071.1.2簡單的C++程序程序結(jié)構(gòu)分析:〔1〕“/*……*/〞是程序的注釋局部,注釋內(nèi)容是為增加程序的可讀性,系統(tǒng)不編譯注釋內(nèi)容,自動忽略從“/*〞到“*/〞之間的內(nèi)容。C++中以“//〞開頭直到本行結(jié)束的局部也是注釋。與“/*……*/〞的區(qū)別在于只能注釋一行,不能跨行,這種注釋也稱為行注釋,“/*……*/〞注釋可以跨行,稱為塊注釋。81.1.2簡單的C++程序〔2〕#include<iostream.h>是一條編譯預(yù)處理命令,聲明該程序要使用iostream.h文件中的內(nèi)容,iostream.h文件中包含了輸入cin和輸出cout的定義。編譯時系統(tǒng)將頭文件iostream.h中的內(nèi)容嵌入到程序中該命令位置。91.1.2簡單的C++程序〔3〕程序中定義了一個主函數(shù)main〔〕,其中main是函數(shù)名,void表示該函數(shù)返回值類型。程序執(zhí)行從主函數(shù)開始?!?〕函數(shù)體中聲明變量的語句是:“intwidth,height,girth,area;〞,通知系統(tǒng)為變量分配存儲空間?!?〕函數(shù)體中的其他語句用于完成相應(yīng)功能,是函數(shù)體的重要組成局部。101.1.2簡單的C++程序書寫格式,盡量遵循以下根本原那么:〔1〕一般情況下一行只寫一條語句。短語句可以一行寫多條,長語句可以分成多行來寫。分行原那么是不能將一個單詞分開,用雙引號括起來的字符串最好也不要分開?!?〕C++程序書寫時要盡量提高可讀性。為此,采用適當(dāng)?shù)乜s進(jìn)格式書寫程序是非常必要的,表示同一類內(nèi)容或同一層次的語句要對齊?!?〕C++程序中大括號{}使用較多,其書寫方法也較多,建議用戶要養(yǎng)成使用大括號{}的固定風(fēng)格。111.1.3創(chuàng)立和運(yùn)行C++程序C++源程序要經(jīng)過編輯、編譯、連接、運(yùn)行4個環(huán)節(jié),才能產(chǎn)生輸出結(jié)果。121.1.3創(chuàng)立和運(yùn)行C++程序1.編輯編輯是在一定的環(huán)境下進(jìn)行程序的輸入和修改正程。2.編譯編輯好的源程序不能被計算機(jī)理解,源程序必須經(jīng)過編譯,生成計算機(jī)能夠識別的機(jī)器代碼。編譯階段要進(jìn)行詞法分析和語法分析,又稱源程序分析。131.1.3創(chuàng)立和運(yùn)行C++程序3.連接編譯后生成的目標(biāo)代碼還不能直接在計算機(jī)上運(yùn)行,其主要原因是編譯器對每個源程序文件分別進(jìn)行編譯,如果一個程序有多個源程序文件,編譯后這些源程序文件還分布在不同的地方。4.運(yùn)行一個C++源程序經(jīng)過編譯和連接后生成了可執(zhí)行文件后,就可以在Windows環(huán)境下直接雙擊該文件運(yùn)行該程序,也可以在VisualC++6.0的集成開發(fā)環(huán)境下運(yùn)行。141.1.3創(chuàng)立和運(yùn)行C++程序C++程序的上機(jī)實現(xiàn)過程:〔1〕啟動VisualC++6.0用戶可以單擊“開始〞菜單,在“程序〞選項中選擇“MicrosoftVisualStudio6.0〞級聯(lián)菜單下的“MicrosoftVisualC++6.0〞,或在桌面上雙擊“MicrosoftVisualC++6.0〞的快捷方式,就會啟動VisualC++6.0。151.1.3創(chuàng)立和運(yùn)行C++程序〔2〕在“文件〞菜單下,選擇“新建〞命令,將彈出“新建〞對話框選擇“工程〞標(biāo)簽下的“Win32ConsoleApplication〞選項,可創(chuàng)立一個基于控制臺應(yīng)用程序的工程;在“工程〞編輯欄內(nèi)輸入創(chuàng)立的工程名稱〔CH1_01〕;在“位置〞編輯欄內(nèi)輸入工程的保存位置〔E:\student〕,確保單項選擇按鈕“R創(chuàng)立新工作區(qū)〞被選定,其它選項選擇默認(rèn)值,單擊“確定〞按鈕將彈出“Win32ConsoleApplition〞工程步驟對話框。161.1.3創(chuàng)立和運(yùn)行C++程序〔3〕在工程步驟對話框中,選擇要創(chuàng)立應(yīng)用程序的類型,共有4個選項:“Anemptyproject.〞〔一個空工程〕“Asimpleapplication.〞〔一個簡單應(yīng)用程序〕“A〞Hello,World“application.〞〔一個“世界,你好〞應(yīng)用程序〕“AnapplicationthatsupportMFC.〞〔一個支持MFC的應(yīng)用程序〕。例中選擇第1個選項,創(chuàng)立一個空工程。171.1.3創(chuàng)立和運(yùn)行C++程序〔4〕單擊“確定〞按鈕,創(chuàng)立空工程的工作結(jié)束,回到VisualC++6.0的集成開發(fā)環(huán)境。至此,系統(tǒng)為工程CH1_01自動創(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)的對話框中選擇“文件〞標(biāo)簽,選擇“C++SourceFile〞選項,創(chuàng)立一個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〞項或單擊微型編譯工具欄中的“編譯程序〞工具按鈕,對C++源程序CH1_01.cpp進(jìn)行編譯。如果編譯有錯誤,需要回到程序編輯窗口重新編輯,直到?jīng)]有錯誤為止。201.1.3創(chuàng)立和運(yùn)行C++程序〔8〕編譯完成后,選擇命令:“編譯〞|“構(gòu)建CH1_01.exe〞或單擊微型編譯工具欄中的“構(gòu)建程序〞工具按鈕,如果沒有連接錯誤,將生成可執(zhí)行文件CH1_01.exe?!?〕用戶可以在Windows環(huán)境下直接用鼠標(biāo)雙擊CH1_01.exe文件,或者單擊微型編譯工具欄中的“執(zhí)行程序〞工具按鈕,都可以執(zhí)行程序。211.1.3創(chuàng)立和運(yùn)行C++程序程序運(yùn)行后,將彈出一個窗體要求用戶輸入兩個整數(shù),從鍵盤輸入60和40,中間用空格分隔,回車。屏幕顯示程序的運(yùn)行結(jié)果。221.1.4VC++集成開發(fā)環(huán)境VisualC++6.0是微軟公司開發(fā)的可視化的C++集成開發(fā)環(huán)境。它是集程序代碼的編輯、編譯、連接、調(diào)試等功能為一體,以一種方便、友好的界面提供給用戶。231.1.4VC++集成開發(fā)環(huán)境1.菜單欄下面是一些最常用的菜單:〔1〕文件:用于創(chuàng)立、翻開、關(guān)閉、保存一個新的文件、工程或工作區(qū)程?!?〕編輯:用于文件的編輯,如文件的復(fù)制、粘貼、查找等操作。〔3〕查看:用于翻開、激活所需要的各種窗口,如工作區(qū)窗口、輸出窗口、屬性窗口等?!?〕插入:用于創(chuàng)立新的資源和類等。〔5〕工程:用于向工程中添加文件、設(shè)置活開工程、工程屬性等?!?〕編譯:用于程序的編譯、構(gòu)建、調(diào)試、運(yùn)行、工程和配置等?!?〕工具:用于選擇或定制集成開發(fā)環(huán)境中的一些工具、宏操作等?!?〕窗口:用于窗口的排列、拆分、隱藏或顯示等。〔9〕幫助:提供幫助文件和關(guān)于等。241.1.4VC++集成開發(fā)環(huán)境2.工具欄通過工具欄,可以快速地使用常見的菜單項選擇項。最常見的工具欄是標(biāo)準(zhǔn)工具欄。3.工作區(qū)窗口工作區(qū)窗口有ClassView〔類視圖〕、ResourceView〔資源視圖〕和FileView〔文件視圖〕三個標(biāo)簽頁,分別用來查看當(dāng)前工程所包含的所有類、資源和文件。251.1.4VC++集成開發(fā)環(huán)境〔1〕ClassView〔類視圖〕,用于顯示當(dāng)前工作區(qū)工程的類,全局變量和函數(shù)?!?〕FileView〔文件視圖〕:FileView標(biāo)簽頁用于顯示當(dāng)前工程的源文件、頭文件、資源文件等。261.1.4VC++集成開發(fā)環(huán)境4.輸出窗口輸出窗口有多個標(biāo)簽頁,最常用的是“編譯〞。在編譯、連接、運(yùn)行過程中顯示系統(tǒng)提供的有關(guān)信息,如出錯信息等。271.2數(shù)據(jù)類型和表達(dá)式1.2.1根本語法成分1.2.2根本數(shù)據(jù)類型1.2.3變量和常量1.2.4運(yùn)算符和表達(dá)式1.2.5數(shù)組類型1.2.6結(jié)構(gòu)體和共用體1.2.7指針和引用281.2.1根本語法成分計算機(jī)語言是人與計算進(jìn)行交流的工具,它也有嚴(yán)格的字符集和嚴(yán)密的語法規(guī)那么。C++語言的根本要素是字符集,由字符集中的假設(shè)干字符按照一定的語法規(guī)那么組成C++程序中各種成分。下面介紹字符集、標(biāo)識符和關(guān)鍵字。291.2.1根本語法成分1.字符集C++語言的字符集包括:〔1〕大小寫英文字母:A~Z,a~z〔2〕數(shù)字:0~9〔3〕特殊字符:空格!#%^&*_〔下劃線〕+-=~<>/\'";.,()[]{}∶301.2.1根本語法成分2.標(biāo)識符標(biāo)識符是用戶用來標(biāo)識程序中函數(shù)名,類型名、常量名、變量名、對象名等實體而定義的單詞。C++語言中標(biāo)識符的命名規(guī)那么如下:〔1〕識符是由英文字母〔包括大寫和小寫〕、數(shù)字和下劃線組成,并且以字母和下劃線開始,其后跟零個或多個字母、數(shù)字或下劃線。注意:標(biāo)識符不可以數(shù)字開始?!?〕標(biāo)識符區(qū)分大、小寫字母。例如,Aa和aa是兩個不同的標(biāo)識符。〔3〕標(biāo)識符的長度是任意的,但有的編譯系統(tǒng)僅能識別前32個字符?!?〕標(biāo)識符不能和C++語言的關(guān)鍵字同名。311.2.1根本語法成分3.關(guān)鍵字關(guān)鍵字是C++系統(tǒng)用于特殊用途的單詞。下面列舉一些C++中常用的關(guān)鍵字:autobreakboolcasecharclassconstcontinue321.2.2根本數(shù)據(jù)類型331.2.2根本數(shù)據(jù)類型數(shù)據(jù)類型說明占字節(jié)數(shù)范圍bool布爾型true,falsechar(signedchar)字符型1-128~127unsignedchar無符號字符型10~255short(signedshort)短整型2-32768~32767unsignedshort無符號短整型20~65535int(signedint)基本整型4-2147483648~2147483647unsignedint無符號整型40~4294967295long(signedlong)長整型4-2147483648~2147483647unsignedlong無符號長整型40~4294967295float單精度型4-3.4×10-38~3.4×1038double雙精度型8-1.7×10-308~1.7×10308341.2.3變量和常量1.常量〔1〕整型常量整型常量即整型常數(shù),沒有小數(shù)局部,可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制3種形式來表示?!?〕浮點(diǎn)型常量浮點(diǎn)型常量又稱實型常量,是由整數(shù)局部和小數(shù)局部組成的,只能用十進(jìn)制表示。浮點(diǎn)型常量有兩種表示方法:小數(shù)表示法和科學(xué)計數(shù)法?!?〕字符常量C++中有兩種字符常量,即一般字符常量和轉(zhuǎn)義字符常量。351.2.3變量和常量〔4〕字符串常量字符串常量是用一對雙引號括起來的字符序列?!?〕符號常量在C++中,可以用一個標(biāo)識符來表示一個常量,這個標(biāo)識符就是符號常量。361.2.3變量和常量C++語言提供了兩種定義符號常量的方法:①用const語句定義符號常量②用#define語句定義符號變量371.2.3變量和常量2.變量變量是指在程序運(yùn)行過程中其值可以變化的量。C++中變量使用前必須先定義。①變量的定義變量定義的一般格式為:數(shù)據(jù)類型變量名1,變量名2,……
②變量賦值與初始化在使用已定義的變量前,要保證變量存儲的是確定的值。381.2.4運(yùn)算符和表達(dá)式C++中常見的表達(dá)式有:算術(shù)表達(dá)式關(guān)系表達(dá)式邏輯表達(dá)式條件表達(dá)式賦值表達(dá)式391.2.4運(yùn)算符和表達(dá)式使用運(yùn)算符時,要注意以下幾點(diǎn):〔1〕運(yùn)算符實現(xiàn)的功能?!?〕操作數(shù)個數(shù)及類型?!?〕運(yùn)算符的優(yōu)先級別。即多個運(yùn)算符同時出現(xiàn)在同一個表達(dá)式時,先進(jìn)行優(yōu)先級高的運(yùn)算,后作優(yōu)先級低的運(yùn)算?!?〕運(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)算是比較兩個操作數(shù)的大小,其結(jié)果是一個布爾型的值。當(dāng)兩個操作數(shù)滿足關(guān)系運(yùn)算符指定的關(guān)系時,表達(dá)式的值為true,否那么為false。在C++中,關(guān)系運(yùn)算符都是雙目運(yùn)算符,共有6個:<〔小于〕、<=〔小于或等于〕、>〔大于〕、〔大于或等于〕、==〔等于〕、!=〔不等于〕。其中前4種和后2種屬于不同的優(yōu)先級,前4種的優(yōu)先級高于后2種。421.2.4運(yùn)算符和表達(dá)式3.邏輯運(yùn)算符及邏輯表達(dá)式邏輯運(yùn)算符共有3個:1個單目運(yùn)算符!〔邏輯求反〕,2個雙目運(yùn)算符&&〔邏輯與〕和||〔邏輯或〕。其中邏輯與的優(yōu)先級比邏輯或高。邏輯運(yùn)算的結(jié)果是邏輯值。參與邏輯運(yùn)算的操作數(shù)可以是任一根本類型的數(shù)據(jù),在進(jìn)行判斷時,系統(tǒng)將非零值作為真,零為假。431.2.4運(yùn)算符和表達(dá)式4.賦值運(yùn)算符和賦值表達(dá)式C++中的賦值運(yùn)算符分為兩種:簡單賦值運(yùn)算符〔“=〞〕復(fù)合賦值運(yùn)算符〔+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=。〕。賦值運(yùn)算符都是二元運(yùn)算符、右結(jié)合。由賦值運(yùn)算符和操作數(shù)組成的表達(dá)式稱為賦值表達(dá)式。441.2.4運(yùn)算符和表達(dá)式5.位運(yùn)算符C++提供了6個位運(yùn)算符:~〔按位求反〕、&〔按位與〕、|〔按位或〕、^〔按位異或〕、<<〔右移位〕、>>〔左移位〕。其中~〔按位求反〕是單目運(yùn)算符,其余都是雙目運(yùn)算符。位運(yùn)算符是對其操作數(shù)按二進(jìn)制形式逐位進(jìn)行運(yùn)算,參與運(yùn)算的操作數(shù)都應(yīng)為整數(shù),不能是實型數(shù)。451.2.4運(yùn)算符和表達(dá)式6.條件運(yùn)算符條件運(yùn)算符“?:〞是C++中唯一的一個三目運(yùn)算符,其使用的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3461.2.4運(yùn)算符和表達(dá)式7.逗號運(yùn)算符由逗號運(yùn)算符構(gòu)成的表達(dá)式稱為逗號表達(dá)式,其一般形式為:表達(dá)式1,表達(dá)式2,…,表達(dá)式n逗號表達(dá)式的執(zhí)行規(guī)那么是從左到右,逐個表達(dá)式執(zhí)行,最后一個表達(dá)式的值是該逗號表達(dá)式的值。注意:逗號運(yùn)算符“,〞的優(yōu)先級最低。471.2.4運(yùn)算符和表達(dá)式8.表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換〔1〕自動轉(zhuǎn)換〔2〕強(qiáng)制轉(zhuǎn)換其一般形式為:數(shù)據(jù)類型〔表達(dá)式〕或〔數(shù)據(jù)類型〕表達(dá)式481.2.5數(shù)組類型1.一維數(shù)組定義一維數(shù)組的一般格式為:
<數(shù)據(jù)類型><數(shù)組名>[長度]例如:intA[100]表示數(shù)組名為A,該數(shù)組有100個元素,數(shù)組元素的類型為整型。491.2.5數(shù)組類型在定義一維數(shù)組時要注意以下幾點(diǎn):〔1〕數(shù)據(jù)類型是指數(shù)組元素的類型?!?〕數(shù)組名的命名規(guī)那么要遵循C++關(guān)于標(biāo)識符的命名規(guī)那么?!?〕數(shù)組元素的下從0開始到長度減1,C++對數(shù)組下標(biāo)越界不做檢查?!?〕必須說明數(shù)組的長度,且這個長度要用一個確定的正整數(shù)常量或常量表達(dá)式來表示。501.2.5數(shù)組類型2.二維數(shù)組二維數(shù)組定義的一般形式為:
<數(shù)組類型><數(shù)組名>[長度][長度]例如:inta[4][3]就定義了一個二維數(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ù)組類型3.字符數(shù)組字符數(shù)組是一個字符類型的數(shù)組,它用來存放字符或字符串,其中每一個數(shù)組元素對應(yīng)一個字符。字符數(shù)組定義的格式為:char數(shù)組名[長度];521.2.6結(jié)構(gòu)體和共用體1.結(jié)構(gòu)體由數(shù)目固定的成員構(gòu)成,各成員可以具有不同的數(shù)據(jù)類型。一個結(jié)構(gòu)變量在內(nèi)存占有一片連續(xù)的存儲空間C++中結(jié)構(gòu)體定義的一般語法形式為:struct結(jié)構(gòu)體名{類型成員1;類型成員2;┇類型成員n;};
531.2.6結(jié)構(gòu)體和共用體結(jié)構(gòu)體是一種特殊的數(shù)據(jù)類型,結(jié)構(gòu)體的定義僅僅是給出了該結(jié)構(gòu)體的組成情況,它和根本數(shù)據(jù)類型int、double等一樣,系統(tǒng)并不為其分配實際的存儲單元。為了使用它,必須定義結(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)體變量.成員名其中,符號“.〞是成員運(yùn)算符,用于訪問一個結(jié)構(gòu)體變量中的某個結(jié)構(gòu)體成員。551.2.6結(jié)構(gòu)體和共用體共用體共用體同結(jié)構(gòu)體一樣,也是一種自定義的數(shù)據(jù)類型,由假設(shè)干數(shù)據(jù)成員組成。雖然共用體與結(jié)構(gòu)體有很多相似之處,但兩者還是有本質(zhì)區(qū)別的。在任一時刻,結(jié)構(gòu)體中的所有成員都是有意義的,而共用體中只有一個成員有意義。這種不同反映到存儲空間分配上就是結(jié)構(gòu)體變量各成員順序存放在一段內(nèi)存中,每個成員分別占有自己的內(nèi)存單元,結(jié)構(gòu)體變量所占存儲空間的大小等于其所有數(shù)據(jù)成員所占存儲空間的總和。而共用體變量的各成員均從同一地址開始存放,共同占用同一存儲空間,即各成員所占用的存儲空間是相互覆蓋的。561.2.6結(jié)構(gòu)體和共用體共用體定義的一般形式為:union共用體名{數(shù)據(jù)類型成員1;數(shù)據(jù)類型成員2; ┇數(shù)據(jù)類型成員n};共用體類型變量說明的一般語法形式為:共用體共用體變量名;571.2.7指針和引用1.指針的根本概念C++程序中定義變量,在編譯時系統(tǒng)為每一個變量分配內(nèi)存空間。。所謂指針就是一個存儲單元的地址值,用來存放地址〔即指針〕的變量也稱指針變量。指針是一個變量,必須先聲明后使用。指針變量聲明的一般形式如下:數(shù)據(jù)類型*標(biāo)識符;581.2.7指針和引用與指針有關(guān)的根本運(yùn)算符有以下兩個:〔1〕取地址運(yùn)算符&:&變量名。用來獲取變量的首地址?!?〕間接訪問運(yùn)算符*:*指針變量名。也稱“指向運(yùn)算符〞或“取內(nèi)容運(yùn)算符〞,表示訪問該指針變量所指向的變量的值,即訪問指針?biāo)赶虻拇鎯卧膬?nèi)容。591.2.7指針和引用2.指針的賦值如果用戶聲明了一個指針變量,在使用該指針變量之前必須對它賦初值。否那么,在程序中使用該指針變量就有可能導(dǎo)致系統(tǒng)崩潰。例如:inti,*p1=&i;int*p2=p1;601.2.7指針和引用3.指針的運(yùn)算指針是一個變量,其值是一個地址。因此,它只能參與賦值、算術(shù)及關(guān)系運(yùn)算?!?〕算術(shù)運(yùn)算〔2〕關(guān)系運(yùn)算兩個指針進(jìn)行關(guān)系運(yùn)算時,它們必須指向同一連續(xù)存儲空間。611.2.7指針和引用4.多級指針由于指針是一個變量,在內(nèi)存中占據(jù)一定的存儲空間,具有一個地址,這個地址也可以利用指針來保存。聲明二級指針的格式為:
數(shù)據(jù)類型**標(biāo)識符
621.2.7指針和引用5.指針與數(shù)組在C++語言中,指針與數(shù)組之間存在著密切的關(guān)系。它們都可以處理內(nèi)存中連續(xù)存放的一系列數(shù)據(jù),數(shù)組和指針在訪問內(nèi)存時采用相同的計算方法,在某些場合下指針和數(shù)組的表現(xiàn)形式具有相同的意義。使用下標(biāo)法對內(nèi)存中的數(shù)組元素進(jìn)行處理,指針和數(shù)組表現(xiàn)形式具有相同的意義,因為指針和數(shù)組名都是地址量。631.2.7指針和引用6.指針與字符串在C++語言中,字符串用字符數(shù)組來處理,有時也把字符串稱為字符數(shù)組。例如:charstr1[]="HelloWorld!";char*pstr=str;cout<<pstr[6]<<endl;//輸出'W'字符641.2.7指針和引用7.內(nèi)存動態(tài)分配C++語言提供了內(nèi)存動態(tài)分配的方法。所謂內(nèi)存動態(tài)分配是指在程序運(yùn)行期間根據(jù)實際需要申請內(nèi)存空間,并在不需要時釋放,它是一種在程序運(yùn)行時動態(tài)申請和釋放內(nèi)存的技術(shù)。使用運(yùn)算符new和delete進(jìn)行內(nèi)存動態(tài)分配和釋放,相應(yīng)地把內(nèi)存的申請和釋放過程稱作創(chuàng)立和刪除。651.2.7指針和引用〔1〕運(yùn)算符new運(yùn)算符new用于申請所需的內(nèi)存空間。它的一般格式如下:<數(shù)據(jù)類型>*<指針變量>=new<數(shù)據(jù)類型>;動態(tài)創(chuàng)立數(shù)組的一般格式如下:<數(shù)據(jù)類型>*<指針變量>=new數(shù)據(jù)類型[長度];661.2.7指針和引用〔2〕運(yùn)算符delete當(dāng)程序中不再需要使用運(yùn)算符new申請到的內(nèi)存空間時,必須要使用運(yùn)算符delete來釋放空間。一般操作形式如下:delete指針名;//釋放非數(shù)組內(nèi)存單元delete[]指針名;//釋放數(shù)組內(nèi)存單元671.2.7指針和引用8.引用在C++語言中,提供了一種為變量起一個別名的機(jī)制,這個別名就是引用。聲明引用的一般格式如下:數(shù)據(jù)類型&引用名=變量名;或數(shù)據(jù)類型&引用名(變量名);
681.2.7指針和引用使用引用應(yīng)注意以下幾點(diǎn):〔1〕聲明引用時,必須要初始化?!?〕一旦為一個變量聲明了一個引用,該引用就不能再作為其它變量的引用。〔3〕引用和其所代表的變量使用同一片存儲空間,它并不另外占用存儲空間?!?〕對引用的操作就是對被引用變量的操作。691.3程序控制結(jié)構(gòu)1.3.1語句1.3.2選擇語句1.3.3循環(huán)語句1.3.4轉(zhuǎn)向語句
701.3.1語句C++支持結(jié)構(gòu)化程序設(shè)計,結(jié)構(gòu)化程序有三種根本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。表達(dá)式語句空語句復(fù)合語句711.3.2選擇語句1.if語句if語句用來有條件地執(zhí)行某一語句系列。if語句主要有以下幾種形式:〔1〕if〔表達(dá)式〕{語句;}721.3.2選擇語句〔2〕if〔表達(dá)式〕{語句1;}else{語句2;}〔3〕if〔表達(dá)式1〕<語句1>elseif〔表達(dá)式2〕<語句2>elseif〔表達(dá)式3〕<語句3> ┇elseif〔表達(dá)式n〕<語句n>else<語句n+1>731.3.2選擇語句2.switch語句在if語句嵌套使用時,如果嵌套層數(shù)太多,將使程序變得難于理解。為此,C++語言提供了switch語句來簡化這一過程。switch語句又稱開關(guān)語句,其一般語法格式為:switch〔表達(dá)式〕{case常量表達(dá)式1:語句1;case常量表達(dá)式2:語句2; ┇case常量表達(dá)式n:語句n;default:語句n+1;}741.3.3循環(huán)語句1.while循環(huán)語句while循環(huán)語句的語法格式為:while〔表達(dá)式〕{循環(huán)體語句;}751.3.3循環(huán)語句2.do-while循環(huán)語句do-while循環(huán)語句的語法形式為:do{循環(huán)體語句;}while(表達(dá)式);761.3.3循環(huán)語句3.for循環(huán)語句for循環(huán)語句比while循環(huán)語句和do-while循環(huán)語句功能更為強(qiáng)大。for循環(huán)語句的一般語法格式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體語句;}771.3.3循環(huán)語句在使用for循環(huán)語句時,注意以下幾種情況:〔1〕for語句中的3個表達(dá)式可以沒有。但每個表達(dá)式后的分號不能省略。此時for循環(huán)語句的形式為:for(;;)這時在循環(huán)體內(nèi)必須有其他控制循環(huán)執(zhí)行的語句,否那么會形成死循環(huán)。〔2〕表達(dá)式1如果不存在或不是用來給循環(huán)變量賦初值,那么應(yīng)在for語句前給循環(huán)變量賦初值。〔3〕表達(dá)式2如果不存在,那么在for語句循環(huán)體內(nèi)應(yīng)有其他控制循環(huán)執(zhí)行的語句,否那么會形成死循環(huán)?!?〕表達(dá)式3如果不存在或不是用來修改循環(huán)變量的值,那么應(yīng)在for語句循環(huán)體內(nèi)設(shè)置相應(yīng)的語句。781.3.4轉(zhuǎn)向語句1.goto語句goto語句一般語法格式為:goto語句標(biāo)號;2.break語句break語句的一般語法格式如下:break;3.continue語句continue語句的一般語法格式為:continue;791.4函數(shù)1.4.1函數(shù)的定義和說明1.4.2函數(shù)的調(diào)用1.4.3函數(shù)的參數(shù)1.4.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用1.4.5作用域和存儲類型1.4.6內(nèi)聯(lián)函數(shù)1.4.7函數(shù)重載1.4.8字符串處理函數(shù)801.4.1函數(shù)的定義和說明函數(shù)定義的一般語法格式如下:函數(shù)類型函數(shù)名(參數(shù)表){函數(shù)體;}C++最重要的特征之一是函數(shù)原型。函數(shù)原型的說明一般語法格式為:類型函數(shù)名〔參數(shù)列表〕;811.4.2函數(shù)的調(diào)用1.函數(shù)調(diào)用的概念函數(shù)調(diào)用是用一個表達(dá)式來表示的。其調(diào)用的一般格式為:函數(shù)名〔實參列表〕要求實參與形參的個數(shù)相同、類型一致、順序一致。821.4.2函數(shù)的調(diào)用函數(shù)的返回值是在被調(diào)用函數(shù)中,通過返回語句return來實現(xiàn)的。返回語句return有兩個重要的作用:其一是使函數(shù)立即返回到其主調(diào)程序,其二是返回某個值。函數(shù)有兩種返回情況,一種是無返回值,一種是有返回值。當(dāng)函數(shù)無返回值時,函數(shù)類型必須用關(guān)鍵字void加以說明。831.4.3函數(shù)的參數(shù)1.傳值調(diào)用這種方法是用參數(shù)傳遞數(shù)據(jù)的最常用的方法。傳值調(diào)用是指函數(shù)調(diào)用時,給形參分配存儲空間,系統(tǒng)計算實參表達(dá)式的值,并把實參的值按順序賦給對應(yīng)的形式參數(shù),即對形參進(jìn)行初始化,然后執(zhí)行函數(shù)體。841.4.3函數(shù)的參數(shù)2.傳址調(diào)用使用傳址調(diào)用方式時,形參是指針變量,實參是地址值,由主調(diào)程序向被調(diào)用函數(shù)傳遞地址。在函數(shù)調(diào)用時,把實參數(shù)地址賦給形式參數(shù),形參和實參都表示同一地址中的值。因此,形參所指向內(nèi)容的任何改變都會導(dǎo)致實參所指向內(nèi)容的改變。851.4.3函數(shù)的參數(shù)3.引用調(diào)用引用也是一種特殊類型的變量,它不同于指針。引用是為程序中變量取一個別名,引用作為函數(shù)的參數(shù)時,形參是實參的引用,那么形參和實參指的是同一個變量,在函數(shù)調(diào)用中對形參的改變實際上就是對實參的改變。861.4.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用1.函數(shù)的嵌套調(diào)用程序從主函數(shù)開始執(zhí)行,遇到函數(shù)調(diào)用時,如果函數(shù)是有參函數(shù),C++先進(jìn)行實參對形參的替換,然后執(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è)在一個函數(shù)中又調(diào)用另一個函數(shù),那么稱這樣的調(diào)用過程為函數(shù)的嵌套調(diào)用871.4.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用2.函數(shù)的遞歸調(diào)用在調(diào)用一個函數(shù)的過程中出現(xiàn)直接或間接調(diào)用該函數(shù)本身,稱作函數(shù)的遞歸調(diào)用。這樣的函數(shù)稱為遞歸函數(shù)。編寫遞歸函數(shù)時,必須有終止遞歸調(diào)用的條件。881.4.5作用域和存儲類型1.作用域作用域是一個標(biāo)識符在程序中有效范圍。C++的作用域有函數(shù)原型作用域、塊作用域、函數(shù)作用域和文件作用域。函數(shù)原型參數(shù)列表中的標(biāo)識符具有函數(shù)原型作用域。函數(shù)原型只需要參數(shù)的類型,并不需要參數(shù)名。參數(shù)名只在函數(shù)原型聲明的兩個圓括號內(nèi)有效。891.4.5作用域和存儲類型塊作用域又稱局部作用域。在一個復(fù)合語句內(nèi)聲明的標(biāo)識符具有塊作用域,其作用域是從聲明處開始,一直到復(fù)合語句結(jié)束的花括號為止。由于函數(shù)體在句法上可以看作一個復(fù)合語句,所以函數(shù)中聲明的標(biāo)識符具有塊作用域。另外函數(shù)的形參也屬于塊作用域。901.4.5作用域和存儲類型2.局部變量和全局變量局部變量具有局部作用域。局部變量僅在定義它的函數(shù)或類內(nèi)起作用,在這個范圍之外不能使用這些變量。全局變量是在函數(shù)和類外部定義的變量。全局變量的作用域從說明點(diǎn)開始直到文件的結(jié)束。這種作用域也稱為文件作用域。911.4.5作用域和存儲類型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國鋼銅復(fù)合材料軸承座數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國耐磨用塑料數(shù)據(jù)監(jiān)測研究報告
- 2025年包裝印刷器材項目可行性研究報告
- 2025至2030年中國電動油脂泵數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國康爾健膠囊數(shù)據(jù)監(jiān)測研究報告
- 2025年中國鋁材擠出機(jī)市場調(diào)查研究報告
- 2025年中國薄荷夾心軟片市場調(diào)查研究報告
- 利潤表與現(xiàn)金流量表分析考核試卷
- 實驗室儀器設(shè)備批發(fā)考核試卷
- 2025-2030年戶外探險凍干能量棒企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 2025年高考英語一輪復(fù)習(xí)講義(新高考)第2部分語法第23講狀語從句(練習(xí))(學(xué)生版+解析)
- 連鑄工職業(yè)技能大賽考試題庫-上(單選、多選題)
- NB/T 11459-2023煤礦井下直流電法勘探規(guī)程
- 2024年全國統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- 十七個崗位安全操作規(guī)程手冊
- 爆花(2023年陜西中考語文試卷記敘文閱讀題及答案)
- 自主簽到培訓(xùn)課件-早安!幼兒園
- 2024-2030年中國大宗商品行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景研究報告
- 強(qiáng)化提升1解三角形中的三線問題(解析)
- 一年級二年級奧數(shù)暑期培優(yōu)題庫
- 室內(nèi)裝飾拆除專項施工方案
評論
0/150
提交評論