版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章 C+語(yǔ)言概述1.1 c+語(yǔ)言的發(fā)展c+語(yǔ)言起源于c語(yǔ)言。1980年,美國(guó)貝爾實(shí)驗(yàn)室的Bjarne Stroustrup博士及其同事在c語(yǔ)言的基礎(chǔ)上,從Simula 67中引入面向?qū)ο蟮奶卣?,開(kāi)發(fā)出一種過(guò)程性與對(duì)象性相結(jié)合的程序設(shè)計(jì)語(yǔ)言。最初稱為“帶類(lèi)的C”,到1983年取名為C+。以后又經(jīng)過(guò)不斷的完善和發(fā)展,成為目前的C+語(yǔ)言。一方面,c+語(yǔ)言將c語(yǔ)言作為它的子集,使它能與c語(yǔ)言兼容;另一方面,c+語(yǔ)言支持面向?qū)ο蟮某绦蛟O(shè)計(jì),這是對(duì)C語(yǔ)言的重要改進(jìn)。1.2 C+語(yǔ)言的特點(diǎn)(1)c+語(yǔ)言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。(2)c+是程序員和軟件開(kāi)發(fā)者在實(shí)踐中創(chuàng)造的。(3)C+是C語(yǔ)言的超集。
2、1.3 C+程序的開(kāi)發(fā)過(guò)程(1)編輯(2)編譯(3)鏈接(4) 運(yùn)行和調(diào)試1.4 C+程序的基本框架1 基本組成#include Void main()2 結(jié)構(gòu)化程序設(shè)計(jì)框架函數(shù)是程序的基本組成單元,是程序中完成一定功能的模塊。函數(shù)的聲明函數(shù)的定義函數(shù)的調(diào)用3 面向?qū)ο蟪绦蛟O(shè)計(jì)框架類(lèi)的定義類(lèi)成員函數(shù)的定義第二章 C+的基本語(yǔ)法2.1 標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)變量、函數(shù)、數(shù)據(jù)類(lèi)型等的字符序列。C+中的標(biāo)符可以由字母、下劃線(_)和數(shù)字09組成,但必須是以字母或下劃線(_)開(kāi)頭。2.2關(guān)鍵字C+語(yǔ)言中預(yù)定義了一些標(biāo)識(shí)符,稱之為關(guān)鍵字,系統(tǒng)有特定用途,它們不能被再定義。 2.3數(shù)據(jù)類(lèi)型布爾型、字符型、整型、
3、浮點(diǎn)型和空類(lèi)型是基本數(shù)據(jù)類(lèi)型。指針、數(shù)組、引用、結(jié)構(gòu)和類(lèi)可以通過(guò)基本數(shù)據(jù)類(lèi)型進(jìn)行構(gòu)造,稱之為復(fù)合數(shù)據(jù)類(lèi)型。 2.4變量變量就是機(jī)器一個(gè)內(nèi)存位置的符號(hào)名,在該內(nèi)存位置可以保存數(shù)據(jù),并可通過(guò)符號(hào)名進(jìn)行訪問(wèn)。為了提高程序的可讀性,給變量命名時(shí),應(yīng)該注意使用有意義的名字。變量第一次賦值稱之為初始化,變量在使用之前應(yīng)當(dāng)先聲明。2.5常量常量是在程序運(yùn)行過(guò)程中,其值不能改變的量。2.6基本輸入輸出C+語(yǔ)言本身沒(méi)有輸入輸出功能,而是通過(guò)輸入輸出庫(kù)完成I/O操作。C程序使用的stdio(標(biāo)準(zhǔn)I/O)I/O庫(kù)也能夠在C+中使用;另外C+語(yǔ)言還提供了一種稱之為iostream(I/O 流庫(kù))的I/O庫(kù)。Iostr
4、eam流主管數(shù)據(jù)類(lèi)型的識(shí)別工作和溝通操作系統(tǒng),全權(quán)負(fù)責(zé)把流中的數(shù)據(jù)送到對(duì)應(yīng)的設(shè)備中。流的格式操作,如對(duì)齊,寬度限制、精度規(guī)定、數(shù)制顯示等形式也可直接以輸出流狀態(tài)的方式操作。7.運(yùn)算符及表達(dá)式C+基本的各種運(yùn)算符構(gòu)成(算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符幾其它運(yùn)算符)以及它們的優(yōu)先級(jí)和結(jié)合性。n 自增、自減運(yùn)算符,前綴式先將操作數(shù)增1(或減1),然后取操作數(shù)的新值參與表達(dá)式的運(yùn)算。后綴是先將操作數(shù)增1(或減1)之前的值參與表達(dá)式的運(yùn)算,到表達(dá)式的值被引用之后再做加1(或減1)運(yùn)算。n 關(guān)系運(yùn)算符兩邊的數(shù)值結(jié)果必須是類(lèi)型相同的。n 在實(shí)現(xiàn)優(yōu)先級(jí)與實(shí)際需要
5、不相符時(shí),需要使用括號(hào)來(lái)改變。參加運(yùn)算的兩個(gè)操作數(shù)類(lèi)型不同時(shí),C+將自動(dòng)作隱式類(lèi)型轉(zhuǎn)換,但有時(shí)要作強(qiáng)制類(lèi)形轉(zhuǎn)換。 n 表達(dá)式和語(yǔ)句的一個(gè)重要區(qū)別是:表達(dá)式具有值,而語(yǔ)句是沒(méi)有值的并且語(yǔ)句末尾要加分號(hào)。第三章 C+的基本語(yǔ)句3.1 C+提供了哪些常用語(yǔ)句?答:n 表達(dá)式語(yǔ)句和空語(yǔ)句;n 復(fù)合語(yǔ)句;n 分支語(yǔ)句包括條件語(yǔ)句和開(kāi)關(guān)語(yǔ)句;n 循環(huán)語(yǔ)句包括while語(yǔ)句、do-while語(yǔ)句、for語(yǔ)句三種形式。n 轉(zhuǎn)向語(yǔ)句包括goto、break、continue和return語(yǔ)句。3.2 什么是表達(dá)式語(yǔ)句?它與表達(dá)式有什么不同?答:任何一個(gè)表達(dá)式后加上分號(hào)就是一條表達(dá)式語(yǔ)句。表達(dá)式與表達(dá)式語(yǔ)句有著不
6、同的用途。在需要表達(dá)式的地方不要用表達(dá)式語(yǔ)句,反之亦然。例如,條件語(yǔ)句中,關(guān)鍵字if后面括號(hào)內(nèi)是表達(dá)式,這時(shí)就不能用表達(dá)式語(yǔ)句,同樣地,在程序中函數(shù)體內(nèi)要求是一條表達(dá)式語(yǔ)句,如果不寫(xiě)分號(hào),將會(huì)出錯(cuò)。3.3 什么是復(fù)合語(yǔ)句?什么是分程序?答:n 復(fù)合語(yǔ)句是由花括號(hào)括起來(lái)的兩條或兩條以上的語(yǔ)句序列。n 分程序是含有定義變量類(lèi)型的說(shuō)明語(yǔ)句的復(fù)合語(yǔ)句。它是一種特殊的復(fù)合語(yǔ)句。3.4條件語(yǔ)句的格式如何?if 語(yǔ)句中對(duì)else子句有何規(guī)定?答:在if語(yǔ)句中最多只能有一個(gè)case子句,也可以沒(méi)有else子句。 規(guī)定else子句是與它最近的一個(gè)if子句配對(duì)使用的。3.5開(kāi)關(guān)語(yǔ)句的格式如何?break語(yǔ)句在開(kāi)關(guān)
7、語(yǔ)句中有何作用?答:switchcase:case:.case:default:先計(jì)算switch中表達(dá)式的值,在大括號(hào)中若找到一個(gè)匹配的值就從該語(yǔ)句開(kāi)始,依次向下執(zhí)行。否則,執(zhí)行default后面的語(yǔ)句組。在中如有break語(yǔ)句時(shí),執(zhí)行到該語(yǔ)句時(shí),退出整個(gè)開(kāi)關(guān)語(yǔ)句,執(zhí)行開(kāi)關(guān)語(yǔ)句后面的語(yǔ)句。如果執(zhí)行完一個(gè)后沒(méi)有遇到break語(yǔ)句,則執(zhí)行該語(yǔ)句序列的下一個(gè),并依次類(lèi)推。3.6開(kāi)關(guān)語(yǔ)句中,case子句的條件有什么特點(diǎn)?答:當(dāng)條件值為一系列的整數(shù)值時(shí),考慮用switch會(huì)比較簡(jiǎn)捷。(1)switch后面的表達(dá)式只能是整型、字符型或枚舉表達(dá)式。(2)case語(yǔ)句的標(biāo)號(hào)不能重名。(3)case語(yǔ)句通常與
8、break聯(lián)用,多個(gè)case可以共用一組執(zhí)行語(yǔ)句。(4)各個(gè)case(包括default)的出現(xiàn)次序可以任意,在每個(gè)case分支都帶有break的情況下,case次序不影響執(zhí)行結(jié)果。3.7 C+提供哪些循環(huán)語(yǔ)句?它們各自有什么特點(diǎn)?它們可以相互替代嗎?可以相互嵌套嗎?答:C+提供如下3種循環(huán)語(yǔ)句。(1) while循環(huán)語(yǔ)句(2) do-while循環(huán)語(yǔ)句(3) for循環(huán)語(yǔ)句n while循環(huán)語(yǔ)句先判斷是否滿足循環(huán)條件,如果滿足循環(huán)條件,則執(zhí)行一次循環(huán)體,再判斷是否執(zhí)行下一次循環(huán)。n Do-while循環(huán)語(yǔ)句先執(zhí)行一次循環(huán)體后再判斷是否繼續(xù)執(zhí)行循環(huán)體還是退出循環(huán)。n For循環(huán)語(yǔ)句,先設(shè)置循環(huán)
9、變量初值,再判斷是執(zhí)行循環(huán)體還是退出循環(huán)。如果執(zhí)行了循環(huán)體,再改變循環(huán)變量值后,判斷是執(zhí)行下一次循環(huán)體還是退出循環(huán),依次類(lèi)推。3種循環(huán)語(yǔ)句是可以替代的,它們以while循環(huán)為最簡(jiǎn)單,do-while循環(huán)和for循環(huán)都可以寫(xiě)成while循環(huán)的形式。3種循環(huán)語(yǔ)句可以相互嵌套,任何一種循環(huán)的循環(huán)體內(nèi)可以包含任何一種循環(huán)語(yǔ)句。3.8 while循環(huán)語(yǔ)句與do-while循環(huán)語(yǔ)句有何區(qū)別? 答:這兩種循環(huán)語(yǔ)句十分相近,其區(qū)別僅在于do-while循環(huán)語(yǔ)句在判斷循環(huán)條件之前先執(zhí)行一次循環(huán)體??捎脀hile循環(huán)替代do-while循環(huán)。3.9 for循環(huán)語(yǔ)句有何特點(diǎn)? 答:for循環(huán)語(yǔ)句在使用方面比較靈活。
10、for循環(huán)語(yǔ)句中for關(guān)鍵字后面括號(hào)內(nèi)的3個(gè)表達(dá)式可以移到括號(hào)外面,使得括號(hào)內(nèi)有兩個(gè)、一個(gè)或沒(méi)有表達(dá)式,但兩個(gè)分號(hào)不能省略。另外,還可以將循環(huán)體內(nèi)的簡(jiǎn)單功能放到括號(hào)內(nèi)。for循環(huán)語(yǔ)句在使用中各種花樣比較多,編程者可根據(jù)需要來(lái)選擇。3.10 break語(yǔ)句在循環(huán)體中有什么作用? 答:在循環(huán)體內(nèi)遇到break語(yǔ)句,則將退出該重循環(huán)。如果有多重循環(huán),break語(yǔ)句只是退出它所在的那重循環(huán),到其外層循環(huán)中。3.11continue語(yǔ)句的功能是什么? 答:該語(yǔ)句只能用在循環(huán)體內(nèi),執(zhí)行該語(yǔ)句將結(jié)束本次循環(huán),轉(zhuǎn)去判斷是否還再執(zhí)行下一次循環(huán)。第4章 函數(shù)知識(shí)點(diǎn)1 函數(shù)的定義 在C+中,定義函數(shù)的一般形式為:
11、()函數(shù)體 其中,是該函數(shù)返回值的數(shù)據(jù)類(lèi)型,若該函數(shù)無(wú)返回值,只是一個(gè)過(guò)程調(diào)用,則該函數(shù)的類(lèi)型為void。是一種標(biāo)識(shí)符,通過(guò)它來(lái)調(diào)用函數(shù)。由逗號(hào)分隔,分別說(shuō)明函數(shù)的各個(gè)形式參數(shù),若無(wú)形式參數(shù),圓括號(hào)也不可省略。形式參數(shù)的使用將使被調(diào)用函數(shù)可以從調(diào)用函數(shù)那里獲取數(shù)據(jù)。可以包含若干個(gè)變量和函數(shù)的定義,以及各種語(yǔ)句序列。若函數(shù)體是0條語(yǔ)句,稱該函數(shù)為空函數(shù)。無(wú)論函數(shù)體內(nèi)有多少條語(yǔ)句,花括號(hào)是不可省的。注意:C+不允許函數(shù)定義嵌套。另外,關(guān)于函數(shù)體中return語(yǔ)句的形式有兩種: (1)retum;/用于帶返回值的函數(shù) (2)return;/ 用于無(wú)返回值的函數(shù),即返回類(lèi)型為void的函數(shù)。知識(shí)點(diǎn)2
12、函數(shù)的說(shuō)明函數(shù)的說(shuō)明又稱為函數(shù)的聲明。在c+中,函數(shù)的說(shuō)明原則有以下兩點(diǎn)。 (1)若一個(gè)函數(shù)先定義,后調(diào)用,則調(diào)用前可以不必說(shuō)明;(2)若一個(gè)函數(shù)先調(diào)用,后定義,則調(diào)用前必須說(shuō)明。說(shuō)明調(diào)用的函數(shù)的方法為:();知識(shí)點(diǎn)3 函數(shù)的調(diào)用 在C+中,函數(shù)調(diào)用的格式為:(); 實(shí)參表應(yīng)該和形參表意義對(duì)應(yīng)。根據(jù)對(duì)函數(shù)返回值的使用方式,函數(shù)的調(diào)用方法大致可分為:(1) 語(yǔ)句調(diào)用;(2) 表達(dá)式調(diào)用;(3)參數(shù)調(diào)用。函數(shù)在調(diào)用之前,一定要定義或說(shuō)明。函數(shù)調(diào)用過(guò)程就是將實(shí)參傳遞給給形參,執(zhí)行函數(shù)體后將結(jié)果返回的過(guò)程。知識(shí)點(diǎn)4 函數(shù)的原型說(shuō)明 在c+中,在調(diào)用任何函數(shù)之前,必須確保該函數(shù)已有函數(shù)原型。c+函數(shù)的聲
13、明(說(shuō)明)就是原型的聲明:這種聲明也叫函數(shù)原型。函數(shù)原型的語(yǔ)法格式與函數(shù)的說(shuō)明格式相同。格式如下: (); 函數(shù)原型說(shuō)明的兩種形式為: (1) 直接使用函數(shù)定義的頭部,并且必須在后面加上一個(gè)分號(hào); (2)在函數(shù)原型說(shuō)明中省略參數(shù)列表中的形參變量名,只給出函數(shù)名、函數(shù)類(lèi)型、參數(shù)的個(gè)數(shù)及次序,注意函數(shù)原型說(shuō)明后面的分號(hào)不能省略。知識(shí)點(diǎn)5 函數(shù)的返回值類(lèi)型函數(shù)返回類(lèi)型根據(jù)函數(shù)是否帶有參數(shù)以及函數(shù)是否有返回值,可將函數(shù)分為4種, (1) 帶參數(shù)的有返回值函數(shù)(2) 不帶參數(shù)的有返回值函數(shù)(3) 帶參數(shù)的無(wú)返回值函數(shù)(4) 不帶參數(shù)的無(wú)返回值函數(shù)。知識(shí)點(diǎn)6 函數(shù)的參數(shù)傳遞方式(1) 傳值調(diào)用:要求實(shí)參為
14、常量值或表達(dá)式值,形參為變量。特點(diǎn)是:在被調(diào)用函數(shù)中改變形參值只影響副本中的值,而對(duì)實(shí)參變量值沒(méi)有影響。實(shí)現(xiàn)機(jī)制:將實(shí)參值傳遞給形參,即形參從實(shí)參處拷貝一個(gè)副本。(2) 傳址調(diào)用:要求實(shí)參用變量的地址值,形參用指針。特點(diǎn):將實(shí)參的地址值傳遞給形參的指針,使形參指針直接指向?qū)崊⒌淖兞?,于是可以通過(guò)改變形參所指向的變量值來(lái)改變實(shí)參值。實(shí)現(xiàn)機(jī)制:將實(shí)參的地址賦給對(duì)應(yīng)的形參指針時(shí),使形參指針指向?qū)崊⒆兞恐怠?3)引用調(diào)用:要求形參用引用,實(shí)參用變量名,形參的引用便是實(shí)參變量的別名。特點(diǎn):用具有傳址調(diào)用提高運(yùn)行效率的優(yōu)點(diǎn),又具有可通過(guò)改變形參來(lái)影響實(shí)參的特點(diǎn)。因此,可以用引用調(diào)用來(lái)替代傳址調(diào)用,因?yàn)橐?/p>
15、調(diào)用的實(shí)現(xiàn)方法比傳址調(diào)用的實(shí)現(xiàn)方法更簡(jiǎn)單明了。所以C+編程中常用引用調(diào)用,而少用傳址調(diào)用。知識(shí)點(diǎn)7 函數(shù)的參數(shù)設(shè)置默認(rèn)值在C+中,允許在函數(shù)說(shuō)明或定義時(shí)給一個(gè)或多個(gè)參數(shù)指定默認(rèn)值。但在一個(gè)指定了默認(rèn)值的參數(shù)的右邊不可以出現(xiàn)沒(méi)有指定默認(rèn)值的參數(shù)。在調(diào)用函數(shù)時(shí),編譯器按從左到右的順序?qū)?shí)參與形參結(jié)合,當(dāng)實(shí)參數(shù)目不足時(shí),編譯器也將按同樣的順序用說(shuō)明或定義中的默認(rèn)值補(bǔ)足所缺少的實(shí)參。在給某個(gè)參數(shù)指定默認(rèn)值時(shí)候,可以是一個(gè)值,也可以是任意復(fù)雜表達(dá)式。例如: void init(int i=0,int j=0);知識(shí)點(diǎn)8 函數(shù)的重載函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn)。函數(shù)重載要求編譯器能夠唯
16、一地確定調(diào)用一個(gè)函數(shù)時(shí)應(yīng)執(zhí)行哪個(gè)函數(shù)代碼,即采用哪個(gè)函數(shù)實(shí)現(xiàn)。確定函數(shù)實(shí)現(xiàn)時(shí),要從函數(shù)參數(shù)的個(gè)數(shù)和類(lèi)型上來(lái)區(qū)分。例如,可以給函數(shù)add()定義兩個(gè)函數(shù)實(shí)現(xiàn),該函數(shù)的功能是求兩個(gè)操作數(shù)之和,其中,一個(gè)是實(shí)現(xiàn)兩個(gè)int之和,一個(gè)是實(shí)現(xiàn)兩個(gè)float型數(shù)之和。知識(shí)點(diǎn)9 內(nèi)聯(lián)函數(shù)C+引入內(nèi)聯(lián)函數(shù),節(jié)省了調(diào)用開(kāi)銷(xiāo),大大地提高了函數(shù)的執(zhí)行效率。內(nèi)聯(lián)函數(shù)與一般函數(shù)區(qū)別之處僅在于函數(shù)調(diào)用的處理,一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)是,是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體直接替換。將一個(gè)函數(shù)定義為內(nèi)聯(lián)函數(shù),只要定義時(shí),在函數(shù)名前加inline即可。注意:內(nèi)聯(lián)函
17、數(shù)體內(nèi)不允許有開(kāi)關(guān)語(yǔ)句和循環(huán)語(yǔ)句,切定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前。知識(shí)點(diǎn)10 遞歸函數(shù)在c+編程中,允許使用函數(shù)的遞歸調(diào)用,因?yàn)檫f歸是一種非常有用的程序設(shè)計(jì)技術(shù)。遞歸就是某一種事物直接或間接地調(diào)用自己。一個(gè)函數(shù)直接或間接地調(diào)用自身,便構(gòu)成了函數(shù)的遞歸調(diào)用,前者稱為直接遞歸調(diào)用,后者稱為間接遞歸調(diào)用。在一個(gè)函數(shù)中調(diào)用自身函數(shù)的函數(shù)稱為遞歸函數(shù)。遞歸函數(shù)在執(zhí)行時(shí),引起一系列的調(diào)用和回代的過(guò)程。遞歸過(guò)程不應(yīng)無(wú)限制地進(jìn)行下去,應(yīng)當(dāng)在調(diào)用有限次后就達(dá)到遞歸調(diào)用的終點(diǎn),得到一個(gè)確定的值,然后進(jìn)行回代?;卮倪^(guò)程是從一個(gè)已知值推出下一個(gè)值。任何有意義的遞歸總是由遞歸形式和遞歸終止條件兩部分構(gòu)成。掌
18、握:數(shù)組作為函數(shù)參數(shù)和數(shù)組元素作為函數(shù)參數(shù)調(diào)用方式?答:數(shù)組作為函數(shù)參數(shù)和數(shù)組元素作為函數(shù)參數(shù)是不同的。它們雖然都屬于傳值調(diào)用,但是數(shù)組作為函數(shù)形參時(shí)實(shí)參用數(shù)組名,它是一個(gè)地址值,對(duì)應(yīng)的是傳址調(diào)用,不拷貝副本,實(shí)參形參共用同一個(gè)數(shù)組空間。數(shù)組元素作為函數(shù)參數(shù)是傳值調(diào)用,實(shí)參用的是數(shù)組元素值,拷貝副本給形參。因此,兩者在調(diào)用機(jī)制上是有區(qū)別的。掌握:指針作為函數(shù)參數(shù)調(diào)用方式?知識(shí)點(diǎn)11變量的作用域與存儲(chǔ)類(lèi)型那個(gè)(1) 標(biāo)識(shí)符的作用域規(guī)則是什么?在c+中,作用域的種類(lèi)有哪些?答:標(biāo)識(shí)符的作用域規(guī)則規(guī)定標(biāo)識(shí)符在定義它的范圍內(nèi)是可見(jiàn)的,而在該范圍之外是不可見(jiàn)的。C+十語(yǔ)言中作用域從大到小依次有程序級(jí)的、
19、文件級(jí)的、類(lèi)級(jí)的、函數(shù)級(jí)的、程序塊級(jí)的。(2)關(guān)于重新定義標(biāo)識(shí)符的作用域規(guī)定是什么?什么是可見(jiàn)?什么是不可見(jiàn)? 答:重新定義標(biāo)識(shí)符的作用域規(guī)定是外層的變量被隱藏,內(nèi)層變量是可見(jiàn)的。例如,在下列程序段中: int fun(int x) int a=5: . int a=8;. 在函數(shù)體內(nèi)定義了變量a,初值為5,又在函數(shù)體內(nèi)的一個(gè)分程序中重新定義了變量。,其初值為8。在內(nèi)層(即分程序)中可見(jiàn)的是分程序中定義的初值為8的a,而函數(shù)中定義的初值為5的a被隱藏了。出了分程序后,外層的a又被恢復(fù)。這里,可見(jiàn)是可以訪問(wèn)和操作,不可見(jiàn)是不可以訪問(wèn)和操作。隱藏是指不可見(jiàn),但是存在。(3)什么是局部變量?什么是全
20、局變量? 答:凡是定義在函數(shù)體內(nèi)或分程序內(nèi)的變量稱為局部變量,局部變量的作用域比較小,或者是函數(shù)級(jí),或者是程序塊級(jí)。局部變量一般包含有自動(dòng)類(lèi)、寄存器類(lèi)和內(nèi)部靜態(tài)類(lèi)以及函數(shù)的形參。 凡是定義在函數(shù)體外的變量稱為全局變量。全局變量有作用域?yàn)檎麄€(gè)程序的外部類(lèi)變量和作用域?yàn)槎x它的文件的外部靜態(tài)類(lèi)變量?jī)煞N。(4)什么是自動(dòng)存儲(chǔ)類(lèi)變量?什么是寄存器存儲(chǔ)類(lèi)變量? 答:自動(dòng)存儲(chǔ)類(lèi)變量是指那些在函數(shù)體內(nèi)或分程序內(nèi)定義的,并且被存放在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)的變量,因此壽命較短。 寄存器存儲(chǔ)類(lèi)變量的作用域和壽命與自動(dòng)存儲(chǔ)類(lèi)的相同,它們之間的區(qū)別在存放地點(diǎn)不同,存放在CPU的通用寄存器中的變量稱為寄存器變量,使用這類(lèi)變量
21、時(shí)存取速度要比其他變量快得多。 (6)什么是靜態(tài)存儲(chǔ)類(lèi)變量?內(nèi)部靜態(tài)類(lèi)和外部靜態(tài)類(lèi)變量有何區(qū)別? 答:靜態(tài)存儲(chǔ)類(lèi)變量是使用static關(guān)鍵字修飾的,并且具有較長(zhǎng)壽命的變量。靜態(tài)存儲(chǔ)類(lèi)變量有兩種:一種是作用域與自動(dòng)存儲(chǔ)類(lèi)相同的內(nèi)部靜態(tài)變量;另一種是定義在函數(shù)體之外,作用域在定義它的文件內(nèi),并從定義時(shí)起的外部靜態(tài)類(lèi)變量。這兩類(lèi)變量壽命相同,都被存放在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)。 靜態(tài)存儲(chǔ)類(lèi)變量與外部存儲(chǔ)類(lèi)變量都是長(zhǎng)壽命的,它們的區(qū)別是作用域不同,內(nèi)部靜態(tài)存儲(chǔ)類(lèi)變量的作用域是函數(shù)級(jí)或程序塊級(jí)的,而外部靜態(tài)存儲(chǔ)類(lèi)變量的作用域是文件級(jí)的。簡(jiǎn)單地講,內(nèi)部靜態(tài)存儲(chǔ)類(lèi)變量被定義在函數(shù)體內(nèi),外部靜態(tài)存儲(chǔ)類(lèi)變量被定義在函數(shù)
22、體外。(7)什么是外部存儲(chǔ)類(lèi)變量?它的定義和說(shuō)明是一回事嗎?答:外部存儲(chǔ)類(lèi)變量的作用域最大,它的作用域是整個(gè)程序,包括該程序的任何一個(gè)文件。它的壽命是長(zhǎng)的,被存放在內(nèi)存靜態(tài)存儲(chǔ)區(qū)。外部變量被定義在某個(gè)文件中,但它在整個(gè)程序中都可見(jiàn)。 外部類(lèi)變量的定義和說(shuō)明是兩回事。定義外部類(lèi)變量在函數(shù)體外的某個(gè)文件中,定義時(shí)不加任何修飾符。在一個(gè)程序中,相同名字的外部類(lèi)變量只能定義一次。說(shuō)明外部類(lèi)變量時(shí),可在函數(shù)體外,也可在函數(shù)體內(nèi),并且前邊要加修飾符extern,在一個(gè)程序中可以根據(jù)需要對(duì)同一個(gè)外部類(lèi)變量說(shuō)明多次。第5章 數(shù)組知識(shí)點(diǎn)1 數(shù)組的概念 數(shù)組是一種用一個(gè)名字來(lái)標(biāo)識(shí)一組有序且類(lèi)型相同的數(shù)據(jù)組成的派生
23、數(shù)據(jù)類(lèi)型,它占有一段連續(xù)內(nèi)存空間。數(shù)組的特征是(1)數(shù)組名;(2)數(shù)組各元素的類(lèi)型;(3)維數(shù)(即標(biāo)識(shí)數(shù)組元素所需的下標(biāo)個(gè)數(shù));(4)數(shù)組大小(即可容納數(shù)組元素的個(gè)數(shù))。注意:使用數(shù)組之前必須用聲明語(yǔ)句指明數(shù)組的上述4個(gè)特征。知識(shí)點(diǎn)2 一維數(shù)組1.定義 一維數(shù)組也稱向量,它是由具有一個(gè)下標(biāo)的數(shù)組元素組成的數(shù)組,它的定義形式為: 類(lèi)型數(shù)組名大小; 其中,方括號(hào)為下標(biāo)運(yùn)算符,具有最高優(yōu)先級(jí)和從右向左結(jié)合性。2 初始化 初始化表達(dá)式按元素順序依次寫(xiě)在一對(duì)花括號(hào)內(nèi)?;ɡㄌ?hào)中的數(shù)組元素之間以逗號(hào)分隔。初始化時(shí)可以不指定數(shù)組的大小,編譯器會(huì)根據(jù)初始化列表來(lái)確定數(shù)組的大小。但只給出部分元素初始化時(shí),就要指定
24、數(shù)組大小。只將部分元素初始化后,其他元素的初始化值隱含為0。3訪問(wèn)數(shù)組元素 訪問(wèn)數(shù)組元素的語(yǔ)法格式為: 其中,是非負(fù)的整型表達(dá)式,也就是數(shù)組的下標(biāo),數(shù)組下標(biāo)是用來(lái)指定所要訪問(wèn)的數(shù)組中的元素的位置。注意:數(shù)組下標(biāo)是從0開(kāi)始的。知識(shí)點(diǎn)3 二維數(shù)組二維數(shù)組也稱二級(jí)向量,我們可以把二維數(shù)組看做一個(gè)其元素為一維數(shù)組的一維數(shù)組。定義二維數(shù)組的一般格式為: mn;二維數(shù)組中的每個(gè)元素要用兩個(gè)下標(biāo)來(lái)表示,前一個(gè)為行下標(biāo),后一個(gè)為列下標(biāo)。因此,規(guī)定m表示二維數(shù)組的行下標(biāo)的大小,n表示二維數(shù)組的列下標(biāo)的大小。 二維數(shù)組元素的表示方法為: ;其中,這兩個(gè)下標(biāo)的取值范圍都是從O開(kāi)始,而不是從1開(kāi)始的。 與一維數(shù)組一樣
25、,二維數(shù)組也可在定義的同時(shí)進(jìn)行初始化,方法也是類(lèi)似的。舉例: int a22=1,l,3,2; 但需要注意的是,如果對(duì)全部元素賦初值,一維數(shù)組能根據(jù)賦的初值的個(gè)數(shù)自動(dòng)計(jì)數(shù)以確定數(shù)組的大小,所以定義的時(shí)候可不指定第一維的大小,但第二維的大小是不可以省略的。知識(shí)點(diǎn)4 字符數(shù)組1概念字符數(shù)組就是一個(gè)字符類(lèi)型的數(shù)組,其中每一個(gè)元素存放一個(gè)字符。字符數(shù)組也稱字符串。C+規(guī)定,字符數(shù)組的最后一個(gè)元素一定是0。例如,字符數(shù)組存儲(chǔ)字符串 :”Hello World!”的語(yǔ)句形式為:char str=”Hello!world!”;但系統(tǒng)會(huì)自動(dòng)在其末尾加一個(gè)空白字符0。也就是說(shuō)字符數(shù)組存儲(chǔ)一個(gè)字符串比實(shí)際使用的字
26、符串要多一個(gè)字節(jié)。2常用字符串函數(shù)c+提供了二系列字符串處理函數(shù),這些函數(shù)都包含在cstring.h頭文件中。(1)strcat(字符串1,字符串2)。此函數(shù)是字符串連接函數(shù),它的功能是把兩個(gè)字符串連接起來(lái)。具體方法是把字符串2連接到字符串l的末端,并將結(jié)果存放到字符串1中。注意:存放結(jié)果字符串的數(shù)組的空間要確保足夠大。兩個(gè)字符串連接后,前一個(gè)數(shù)組最后的字符0就消失了。 (2)strcpy(字符串1,字符串2)。此函數(shù)是字符拷貝函數(shù),它的功能是把一個(gè)字符串中的字符拷貝到另一個(gè)字符串變量中。具體方法是把字符串2中的字符拷貝到字符串1中。注意:要確保存放結(jié)果的字符串1的空間足夠大。 (3)strc
27、mp(字符串1,字符串2)。此函數(shù)是字符串比較函數(shù),它是用來(lái)比較字符串的。比較方法是:若兩字符串相等(匹配),返回0(“假”);若字符串1在字典順序上比字符串2大,則返回一個(gè)正數(shù);若字符串1在字典順序上比字符串2小,則返回一個(gè)負(fù)數(shù)。(4)strlen(字符串)。此函數(shù)是字符串長(zhǎng)度函數(shù),它的功能是求字符串的長(zhǎng)度。函數(shù)的值為字符串中不計(jì)0的字符的個(gè)數(shù)。(5)strstr(字符串1,字符串2)。此函數(shù)是字符串查找函數(shù),它的功能是在一個(gè)字符串中查找子串。查找方法毫在字符串1中從左邊開(kāi)始查找字符串2,若查找成功,返回字符串2在字符串l中第一次出現(xiàn)的位置否則返回NULL,若字符串2為”,則返回字符串l。第
28、6章 指針與引用知識(shí)點(diǎn)1 指針與地址指針是一種非常重要的派生數(shù)據(jù)類(lèi)型,用它可以構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。具有指針類(lèi)型的變量稱為指針變量,一個(gè)指針變量所存儲(chǔ)的信息是一個(gè)對(duì)象在內(nèi)存中的地址。通過(guò)指針變量可以間接地訪問(wèn)對(duì)象。指針變量聲明的一般格式為: * 其中,是指針?biāo)笇?duì)象的類(lèi)型,*和&是是指針?biāo)褂玫膬蓚€(gè)特殊運(yùn)算符。(1) &是取地址運(yùn)算符(2) *是間接引用運(yùn)算符,它是獲得對(duì)象的值,并且它要求其操作對(duì)象是一個(gè)指針。在使用任何指針變量之前必須首先給它賦一個(gè)所指合法具體對(duì)象的內(nèi)存地址值。知識(shí)點(diǎn)2 指針運(yùn)算 指針是一種數(shù)據(jù)類(lèi)型,應(yīng)具有無(wú)符號(hào)整數(shù)的值。由于地址本身的特征,也給指針運(yùn)算帶來(lái)一些限制。一般來(lái)說(shuō),
29、允許指針有4種運(yùn)算: (1)賦值運(yùn)算。可以將一個(gè)個(gè)指針?biāo)赶虻淖兞康刂分蒂x給它,也可以將一個(gè)數(shù)組的地值或者一個(gè)函數(shù)在內(nèi)存中的入口地址賦給所對(duì)應(yīng)的指針,還可以將一個(gè)已被賦值的指針賦給另一個(gè)相同類(lèi)型的指針。int a,pa=&a;如,指向一維數(shù)組int a10,*p;p=a; /a=&a0,數(shù)組名為地址常量,首元素的地址如,指向二維數(shù)組int b23,(*p)3p=b;/b=&b0,數(shù)組名為地址常量,首行的地址如,指向一個(gè)字符串char *p=”hell0”; /指向字符串的首字符地址如,指向多個(gè)字符串 char *p3=“hello”,”world”,”am”; (2)指針與整數(shù)相加、減運(yùn)算。例如:P+ (3)在一定
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年粵教新版九年級(jí)生物下冊(cè)階段測(cè)試試卷含答案784
- 暑期輔導(dǎo)專用2024年初高中物理銜接教材銜接點(diǎn)12牛頓第一定律含解析
- 2024年度展示廳燈光音響系統(tǒng)定制合同3篇
- 洋酒銷(xiāo)售課程設(shè)計(jì)圖
- 2024年度土地利用規(guī)劃地形圖測(cè)繪合同3篇
- 2022-2023年廣東省廣州市荔灣區(qū)六年級(jí)上冊(cè)期末數(shù)學(xué)試卷及答案
- 2024年標(biāo)準(zhǔn)柑橘果品采購(gòu)與銷(xiāo)售協(xié)議版B版
- 2025年高考?xì)v史復(fù)習(xí)熱搜題速遞之改革開(kāi)放(2024年7月)
- 2024年度贈(zèng)與非物質(zhì)文化遺產(chǎn)搶救保護(hù)合同范本3篇
- 旅游消費(fèi)文化課程設(shè)計(jì)
- 隱患排查治理管理規(guī)定
- 2025材料供貨合同樣本
- 豪華酒店翻新工程協(xié)議
- 《逆向教學(xué)設(shè)計(jì)研究的國(guó)內(nèi)外文獻(xiàn)綜述》2500字
- 科技強(qiáng)國(guó)建設(shè)視域下拔尖創(chuàng)新人才價(jià)值觀引導(dǎo)研究
- 馬鞍山酒柜定制合同范例
- 2024年保密協(xié)議書(shū)(信息技術(shù)行業(yè))2篇
- 中國(guó)軸承制造行業(yè)投資前景分析、未來(lái)發(fā)展趨勢(shì)研究報(bào)告(智研咨詢發(fā)布)
- 2025年攻讀博士學(xué)位期間擬開(kāi)展的研究計(jì)劃
- 教科版2022-2023學(xué)年度上學(xué)期三年級(jí)科學(xué)上冊(cè)期末測(cè)試卷及答案(含八套題)
- 國(guó)家開(kāi)放大學(xué)電大《11662會(huì)計(jì)信息系統(tǒng)(本)》期末終考題庫(kù)及標(biāo)準(zhǔn)參考答案
評(píng)論
0/150
提交評(píng)論