版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章 C+ 語言概述1.1 c+ 語言的發(fā)展c+ 語言起源于 c 語言。 1980 年,美國貝爾實驗室的 Bjarne Stroustrup 博士及其同事在 c 語 言的基礎(chǔ)上,從 Simula 67 中引入面向?qū)ο蟮奶卣?,開發(fā)出一種過程性與對象性相結(jié)合的程序設(shè)計 語言。最初稱為“帶類的 C,至U 1983年取名為C+。以后又經(jīng)過不斷的完善和發(fā)展,成為目前的 C+語言。一方面,C+語言將c語言作為它的子集,使它能與 c語言兼容;另一方面,C+語言支持 面向?qū)ο蟮某绦蛟O(shè)計,這是對 C語言的重要改進。1.2 C+ 語言的特點(1) c+ 語言是一種面向?qū)ο蟮某绦蛟O(shè)計語言。(2) c+ 是程序員和
2、軟件開發(fā)者在實踐中創(chuàng)造的。(3) C+是C語言的超集。1.3 C+ 程序的開發(fā)過程(1) 編輯(2) 編譯(3) 鏈接(4) 運行和調(diào)試1.4 C+ 程序的基本框架1 基本組成#include Void main()2 結(jié)構(gòu)化程序設(shè)計框架函數(shù)是程序的基本組成單元,是程序中完成一定功能的模塊。函數(shù)的聲明函數(shù)的定義函數(shù)的調(diào)用3 面向?qū)ο蟪绦蛟O(shè)計框架類的定義類成員函數(shù)的定義第二章 C+ 的基本語法2.1 標識符是用來標識變量、函數(shù)、數(shù)據(jù)類型等的字符序列。C+中的標符可以由字母、下劃線(_)和數(shù)字09 組成,但必須是以字母或下劃線( _)開頭。2.2 關(guān)鍵字C+語言中預(yù)定義了一些標識符,稱之為關(guān)鍵字,
3、系統(tǒng)有特定用途,它們不能被再定義。2.3 數(shù)據(jù)類型布爾型、字符型、整型、浮點型和空類型是基本數(shù)據(jù)類型。指針、數(shù)組、引用、結(jié)構(gòu)和類可以通 過基本數(shù)據(jù)類型進行構(gòu)造,稱之為復(fù)合數(shù)據(jù)類型。2.4 變量變量就是機器一個內(nèi)存位置的符號名,在該內(nèi)存位置可以保存數(shù)據(jù),并可通過符號名進行訪問。 為了提高程序的可讀性,給變量命名時,應(yīng)該注意使用有意義的名字。變量第一次賦值稱之為初始 化,變量在使用之前應(yīng)當(dāng)先聲明。2.5 常量常量是在程序運行過程中,其值不能改變的量。2.6 基本輸入輸出C+語言本身沒有輸入輸出功能,而是通過輸入輸出庫完成I/O操作。C程序使用的stdio (標準I/O)I/O庫也能夠在 C+中使用
4、;另外 C+語言還提供了一種稱之為 iostream ( I/O流庫)的I/O 庫。 Iostream 流主管數(shù)據(jù)類型的識別工作和溝通操作系統(tǒng),全權(quán)負責(zé)把流中的數(shù)據(jù)送到對應(yīng)的設(shè)備 中。流的格式操作,如對齊,寬度限制、精度規(guī)定、數(shù)制顯示等形式也可直接以輸出流狀態(tài)的方式操作。7. 運算符及表達式C+基本的各種運算符構(gòu)成(算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符、條件運算符、賦 值運算符、逗號運算符幾其它運算符 )以及它們的優(yōu)先級和結(jié)合性。自增、自減運算符,前綴式先將操作數(shù)增1(或減 1),然后取操作數(shù)的新值參與表達式的運算。后綴是先將操作數(shù)增 1(或減 1)之前的值參與表達式的運算, 到表達式
5、的值被引用之后再做加 1(或 減 1)運算。關(guān)系運算符兩邊的數(shù)值結(jié)果必須是類型相同的。在實現(xiàn)優(yōu)先級與實際需要不相符時, 需要使用括號來改變。 參加運算的兩個操作數(shù)類型不同時, C+將自動作隱式類型轉(zhuǎn)換,但有時要作強制類形轉(zhuǎn)換。表達式和語句的一個重要區(qū)別是:表達式具有值,而語句是沒有值的并且語句末尾要加分號。第三章 C+ 的基本語句3.1 C+提供了哪些常用語句?答:表達式語句和空語句;復(fù)合語句;分支語句包括條件語句和開關(guān)語句;循環(huán)語句包括 while 語句、 do-while 語句、 for 語句三種形式。轉(zhuǎn)向語句包括 goto 、 break 、 continue 和 return 語句。3
6、.2 什么是表達式語句?它與表達式有什么不同?答:任何一個表達式后加上分號就是一條表達式語句。表達式與表達式語句有著不同的用途。在需要表達式的地方不要用表達式語句,反之亦然。例 如,條件語句中,關(guān)鍵字 if 后面括號內(nèi)是表達式,這時就不能用表達式語句,同樣地,在程序中函 數(shù)體內(nèi)要求是一條表達式語句,如果不寫分號,將會出錯。3.3什么是復(fù)合語句?什么是分程序?答:復(fù)合語句是由花括號括起來的兩條或兩條以上的語句序列。分程序是含有定義變量類型的說明語句的復(fù)合語句。它是一種特殊的復(fù)合語句。3.4條件語句的格式如何?if語句中對else子句有何規(guī)定?答:在if語句中最多只能有一個 case子句,也可以沒
7、有 else子句。規(guī)定else子句是與它最近的一個if子句配對使用的。3. 5開關(guān)語句的格式如何?break語句在開關(guān)語句中有何作用?答:switchv整型表達式case整常型表達式1: 語句序列1case整常型表達式 2: 語句序列2case整常型表達式 n: 語句序列ndefaults 語句序列n+1先計算switch中表達式的值,在大括號中若找到一個匹配的值就從該語句開始,依次向下執(zhí)行。否則,執(zhí)行default后面的語句組。在 語句序列 中如有break語句時,執(zhí)行到該語句時,退出整個開關(guān)語句,執(zhí)行開關(guān)語句后面的語句。如果執(zhí)行完一個 語句序列 后沒有遇到break語句,則執(zhí)行該語句序列的
8、下一個 語句序列, 并依次類推。3.6開關(guān)語句中,case子句的條件有什么特點?答:當(dāng)條件值為一系列的整數(shù)值時,考慮用 switch會比較簡捷。(1) switch 后面的表達式只能是整型、字符型或枚舉表達式。(2) case語句的標號不能重名。(3) case語句通常與break聯(lián)用,多個case可以共用一組執(zhí)行語句。各個case (包括default )的出現(xiàn)次序可以任意,在每個case分支都帶有break的情況下,case次序不影響執(zhí)行結(jié)果。3.7 C+提供哪些循環(huán)語句?它們各自有什么特點?它們可以相互替代嗎?可以相互嵌套嗎?答:C+提供如下3種循環(huán)語句。(1)while循環(huán)語句(2)d
9、o-while循環(huán)語句(3)for循環(huán)語句while循環(huán)語句先判斷是否滿足循環(huán)條件,如果滿足循環(huán)條件,則執(zhí)行一次循環(huán)體,再判斷是否執(zhí)行下一次循環(huán)。Do-while循環(huán)語句先執(zhí)行一次循環(huán)體后再判斷是否繼續(xù)執(zhí)行循環(huán)體還是退出循環(huán)。For循環(huán)語句,先設(shè)置循環(huán)變量初值,再判斷是執(zhí)行循環(huán)體還是退出循環(huán)。如果執(zhí)行了循環(huán)體,再改變循環(huán)變量值后,判斷是執(zhí)行下一次循環(huán)體還是退出循環(huán),依次類推。3種循環(huán)語句是可以替代的,它們以while循環(huán)為最簡單,do-while循環(huán)和for循環(huán)都可以寫成while循環(huán)的形式。3種循環(huán)語句可以相互嵌套,任何一種循環(huán)的循環(huán)體內(nèi)可以包含任何一種循環(huán)語句。3.8 while循環(huán)語句與
10、do-while循環(huán)語句有何區(qū)別?答:這兩種循環(huán)語句十分相近,其區(qū)別僅在于do-while 循環(huán)語句在判斷循環(huán)條件之前先執(zhí)行一次循環(huán)體??捎?while循環(huán)替代do-while 循環(huán)。3.9 for循環(huán)語句有何特點?答:for循環(huán)語句在使用方面比較靈活。 for循環(huán)語句中for關(guān)鍵字后面括號內(nèi)的 3個表達式可以 移到括號外面,使得括號內(nèi)有兩個、一個或沒有表達式,但兩個分號不能省略。另外,還可以將循環(huán)體內(nèi)的簡單功能放到括號內(nèi)。 for循環(huán)語句在使用中各種花樣比較多,編程者可根據(jù)需要來選擇。3.10 break語句在循環(huán)體中有什么作用?答:在循環(huán)體內(nèi)遇到 break語句,則將退出該重循環(huán)。如果有多
11、重循環(huán),break語句只是退出它所在的那重循環(huán),到其外層循環(huán)中。3.11continue 語句的功能是什么?答:該語句只能用在循環(huán)體內(nèi),執(zhí)行該語句將結(jié)束本次循環(huán),轉(zhuǎn)去判斷是否還再執(zhí)行下一次循環(huán)。第4章函數(shù)知識點1函數(shù)的定義在C+中,定義函數(shù)的一般形式為:返回類型 函數(shù)名 ( 形式參數(shù)表)函數(shù)體其中,返回類型 是該函數(shù)返回值的數(shù)據(jù)類型,若該函數(shù)無返回值,只是一個過程調(diào)用,則該 函數(shù)的類型為void。函數(shù)名 是一種標識符,通過它來調(diào)用函數(shù)。形式參數(shù)表 由逗號分隔,分別說明函數(shù)的各個形式參數(shù),若無形式參數(shù),圓括號也不可省略。 形式參數(shù)的使用將使被調(diào)用函數(shù)可以從調(diào)用函數(shù)那里獲取數(shù)據(jù)。函數(shù)體 可以包含若
12、干個變量和函數(shù)的定義,以及各種語句序列。若函數(shù)體是0條語句,稱該函數(shù)為空函數(shù)。無論函數(shù)體內(nèi)有多少條語句,花括號是不可省的。注意:C+不允許函數(shù)定義嵌套。另外,關(guān)于函數(shù)體中return語句的形式有兩種:(1) retum表達式;/用于帶返回值的函數(shù)(2) return ; /用于無返回值的函數(shù),即返回類型為void的函數(shù)。知識點2函數(shù)的說明函數(shù)的說明又稱為函數(shù)的聲明。在C+中,函數(shù)的說明原則有以下兩點。(1) 若一個函數(shù)先定義,后調(diào)用,則調(diào)用前可以不必說明;(2) 若一個函數(shù)先調(diào)用,后定義,則調(diào)用前必須說明。說明調(diào)用的函數(shù)的方法為:數(shù)據(jù)類型 函數(shù)名 ( 參數(shù)表);知識點3函數(shù)的調(diào)用在C+中,函數(shù)
13、調(diào)用的格式為:函數(shù)名 ( 實參表);實參表應(yīng)該和形參表意義對應(yīng)。根據(jù)對函數(shù)返回值的使用方式,函數(shù)的調(diào)用方法大致可分為:(1)語句調(diào)用;(2)表達式調(diào)用;(3)參數(shù)調(diào)用。函數(shù)在調(diào)用之前,一定要定義或說明。函數(shù)調(diào)用過程就是將實參傳遞給給形參,執(zhí)行函數(shù)體后將結(jié)果返回的過程。知識點4函數(shù)的原型說明在C+中,在調(diào)用任何函數(shù)之前,必須確保該函數(shù)已有函數(shù)原型。C+函數(shù)的聲明(說明)就是原型的聲明:這種聲明也叫函數(shù)原型。函數(shù)原型的語法格式與函數(shù)的說明格式相同。格式如下:數(shù)據(jù)類型 函數(shù)名 (形參列表);函數(shù)原型說明的兩種形式為:(1) 直接使用函數(shù)定義的頭部,并且必須在后面加上一個分號;(2) 在函數(shù)原型說明中
14、省略參數(shù)列表中的形參變量名,只給出函數(shù)名、函數(shù)類型、參數(shù)的個 數(shù)及次序,注意函數(shù)原型說明后面的分號不能省略。知識點5函數(shù)的返回值類型函數(shù)返回類型根據(jù)函數(shù)是否帶有參數(shù)以及函數(shù)是否有返回值,可將函數(shù)分為4種,(1)帶參數(shù)的有返回值函數(shù)(2)不帶參數(shù)的有返回值函數(shù)(3)帶參數(shù)的無返回值函數(shù) (4)不帶參數(shù)的無返回值函數(shù)。知識點6函數(shù)的參數(shù)傳遞方式(1) 傳值調(diào)用:要求實參為常量值或表達式值,形參為變量。特點是:在被調(diào)用函數(shù)中改變形參值只影響副本中的值,而對實參變量值沒有影響。實現(xiàn)機制:將實參值傳遞給形參,即形參從實參處拷貝一個副本。(2) 傳址調(diào)用:要求實參用變量的地址值,形參用指針。特點:將實參的
15、地址值傳遞給形參的指針,使形參指針直接指向?qū)崊⒌淖兞?,于是可以通過改變形參所指向的變量值來改變實參值。實現(xiàn)機制:將實參的地址賦給對應(yīng)的形參指針時,使形參指針指向?qū)崊⒆兞恐怠?3) 引用調(diào)用:要求形參用引用,實參用變量名,形參的引用便是實參變量的別名。特點:用具有傳址調(diào)用提高運行效率的優(yōu)點,又具有可通過改變形參來影響實參的特點。因此,可以用引用調(diào)用來替代傳址調(diào)用,因為引用調(diào)用的實現(xiàn)方法比傳址調(diào)用的實現(xiàn)方法更簡單明了。所以C+編程中常用引用調(diào)用,而少用傳址調(diào)用。知識點7函數(shù)的參數(shù)設(shè)置默認值在C+中 ,允許在函數(shù)說明或定義時給一個或多個參數(shù)指定默認值。但在一個指定了默認值的參 數(shù)的右邊不可以出現(xiàn)沒有
16、指定默認值的參數(shù)。在調(diào)用函數(shù)時,編譯器按從左到右的順序?qū)崊⑴c形參結(jié)合,當(dāng)實參數(shù)目不足時,編譯器也將按同樣的順序用說明或定義中的默認值補足所缺少的實參。在 給某個參數(shù)指定默認值時候,可以是一個值,也可以是任意復(fù)雜表達式。例如:voidinit(inti=0, int j=0);知識點8函數(shù)的重載函數(shù)重載是指同一個函數(shù)名可以對應(yīng)著多個函數(shù)的實現(xiàn)。函數(shù)重載要求編譯器能夠唯一地確定調(diào)用一個函數(shù)時應(yīng)執(zhí)行哪個函數(shù)代碼,即采用哪個函數(shù)實現(xiàn)。確定函數(shù)實現(xiàn)時,要從函數(shù)參數(shù)的個數(shù)和類型上來區(qū)分。例如,可以給函數(shù)add()定義兩個函數(shù)實現(xiàn),該函數(shù)的功能是求兩個操作數(shù)之和,其中,一個是實現(xiàn)兩個int之和,一個是實現(xiàn)
17、兩個float型數(shù)之和。知識點9內(nèi)聯(lián)函數(shù)C+引入內(nèi)聯(lián)函數(shù),節(jié)省了調(diào)用開銷,大大地提高了函數(shù)的執(zhí)行效率。 內(nèi)聯(lián)函數(shù)與一般函數(shù)區(qū)別之 處僅在于函數(shù)調(diào)用的處理,一般函數(shù)進行調(diào)用時,要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中 ,然后再返回到 調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時是,是將調(diào)用表達式用內(nèi)聯(lián)函數(shù)體直接替換。將一個函數(shù)定義為內(nèi)聯(lián)函數(shù),只要定義時,在函數(shù)名前加inline即可。注意:內(nèi)聯(lián)函數(shù)體內(nèi)不允許有開關(guān)語句和循環(huán)語句,切定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之刖。知識點10遞歸函數(shù)在C+編程中,允許使用函數(shù)的遞歸調(diào)用,因為遞歸是一種非常有用的程序設(shè)計技術(shù)。遞歸就是某一種事物直接或間接地調(diào)用自己。一個函數(shù)直接或
18、間接地調(diào)用自身,便構(gòu)成了函數(shù)的遞歸調(diào)用,前者稱為直接遞歸調(diào)用,后者稱為間接遞歸調(diào)用。 在一個函數(shù)中調(diào)用自身函數(shù)的函數(shù)稱為遞歸函數(shù)。遞歸函數(shù)在執(zhí)行時,弓I起一系列的調(diào)用和回代的過程。遞歸過程不應(yīng)無限制地進行下去,應(yīng)當(dāng)在調(diào)用有限次后就達到遞歸調(diào)用的終點,得到一個確定的值,然后進行回代?;卮倪^程是從一個已知值推出下一個值。任何有意義的遞歸總是由遞歸形式和遞歸終止條件兩部分構(gòu)成。掌握:數(shù)組作為函數(shù)參數(shù)和數(shù)組元素作為函數(shù)參數(shù)調(diào)用方式?答:數(shù)組作為函數(shù)參數(shù)和數(shù)組元素作為函數(shù)參數(shù)是不同的。它們雖然都屬于傳值調(diào)用,但是數(shù)組作為函數(shù)形參時實參用數(shù)組名,它是一個地址值,對應(yīng)的是傳址調(diào)用,不拷貝副本,實參形參共用
19、同一個數(shù)組空間。數(shù)組元素作為函數(shù)參數(shù)是傳值調(diào)用,實參用的是數(shù)組元素值,拷貝副本給形參。因此,兩者在調(diào)用機制上是有區(qū)別的。掌握:指針作為函數(shù)參數(shù)調(diào)用方式?知識點11變量的作用域與存儲類型那個(1)標識符的作用域規(guī)則是什么?在C+中,作用域的種類有哪些?答: 標識符的作用域規(guī)則規(guī)定標識符在定義它的范圍內(nèi)是可見的, 而在該范圍之外是不可見的。C+十語言中作用域從大到小依次有程序級的、文件級的、類級的、函數(shù)級的、程序塊級的。( 2)關(guān)于重新定義標識符的作用域規(guī)定是什么 ?什么是可見 ?什么是不可見 ?答: 段中:重新定義標識符的作用域規(guī)定是外層的變量被隱藏,內(nèi)層變量是可見的。例如,在下列程序int f
20、un(int x)int a=5:int a=8在函數(shù)體內(nèi)定義了變量 a,初值為5,又在函數(shù)體內(nèi)的一個分程序中重新定義了變量。 ,其初 值為&在內(nèi)層(即分程序)中可見的是分程序中定義的初值為 8的a,而函數(shù)中定義的初值為 5的a 被隱藏了。出了分程序后,外層的 a 又被恢復(fù)。這里,可見是可以訪問和操作,不可見是不可以訪問和操作。隱藏是指不可見,但是存在。( 3)什么是局部變量 ?什么是全局變量 ?答:凡是定義在函數(shù)體內(nèi)或分程序內(nèi)的變量稱為局部變量,局部變量的作用域比較小,或者是函 數(shù)級,或者是程序塊級。局部變量一般包含有自動類、寄存器類和內(nèi)部靜態(tài)類以及函數(shù)的形參。凡是定義在函數(shù)體外的變量稱為全
21、局變量。 全局變量有作用域為整個程序的外部類變量和作用 域為定義它的文件的外部靜態(tài)類變量兩種。( 4)什么是自動存儲類變量 ?什么是寄存器存儲類變量 ?答:自動存儲類變量是指那些在函數(shù)體內(nèi)或分程序內(nèi)定義的,并且被存放在內(nèi)存的動態(tài)存儲區(qū)的變量,因此壽命較短。寄存器存儲類變量的作用域和壽命與自動存儲類的相同,它們之間的區(qū)別在存放地點不同, 存放在CPU的通用寄存器中的變量稱為寄存器變量,使用這類變量時存取速度要比其他變量快得多。( 6)什么是靜態(tài)存儲類變量 ?內(nèi)部靜態(tài)類和外部靜態(tài)類變量有何區(qū)別 ?答:靜態(tài)存儲類變量是使用 static 關(guān)鍵字修飾的,并且具有較長壽命的變量。靜態(tài)存儲類變量有兩種:一
22、種是作用域與自動存儲類相同的內(nèi)部靜態(tài)變量;另一種是定義在函數(shù)體之外,作用域在定義它的文件內(nèi),并從定義時起的外部靜態(tài)類變量。這兩類變量壽命相同,都被存放在內(nèi)存的靜態(tài)存儲區(qū)。靜態(tài)存儲類變量與外部存儲類變量都是長壽命的, 它們的區(qū)別是作用域不同, 內(nèi)部靜態(tài)存儲類 變量的作用域是函數(shù)級或程序塊級的,而外部靜態(tài)存儲類變量的作用域是文件級的。簡單地講,內(nèi)部靜態(tài)存儲類變量被定義在函數(shù)體內(nèi),外部靜態(tài)存儲類變量被定義在函數(shù)體外。( 7)什么是外部存儲類變量 ?它的定義和說明是一回事嗎 ?答:外部存儲類變量的作用域最大,它的作用域是整個程序,包括該程序的任何一個文件。它 的壽命是長的,被存放在內(nèi)存靜態(tài)存儲區(qū)。外部
23、變量被定義在某個文件中,但它在整個程序中都可 見。外部類變量的定義和說明是兩回事。定義外部類變量在函數(shù)體外的某個文件中,定義時不加 任何修飾符。在一個程序中,相同名字的外部類變量只能定義一次。說明外部類變量時,可在函數(shù) 體外,也可在函數(shù)體內(nèi),并且前邊要加修飾符 extern ,在一個程序中可以根據(jù)需要對同一個外部類 變量說明多次。第5章數(shù)組知識點1數(shù)組的概念數(shù)組是一種用一個名字來標識一組有序且類型相同的數(shù)據(jù)組成的派生數(shù)據(jù)類型,它占有一段連續(xù)內(nèi)存空間。數(shù)組的特征是(1)數(shù)組名;(2)數(shù)組各元素的類型;(3)維數(shù)(即標識數(shù)組元素所需的下標個數(shù) ); 數(shù)組大?。纯扇菁{數(shù)組元素的個數(shù) )。注意:使用
24、數(shù)組之前必須用聲明語句指明數(shù)組的上述4個特征。知識點2 一維數(shù)組1.定義一維數(shù)組也稱向量,它是由具有一個下標的數(shù)組元素組成的數(shù)組,它的定義形式為:類型數(shù)組名大?。黄渲?,方括號為下標運算符,具有最高優(yōu)先級和從右向左結(jié)合性。2初始化初始化表達式按元素順序依次寫在一對花括號內(nèi)?;ɡㄌ栔械臄?shù)組元素之間以逗號分隔。初 始化時可以不指定數(shù)組的大小,編譯器會根據(jù)初始化列表來確定數(shù)組的大小。但只給出部分元素初 始化時,就要指定數(shù)組大小。 只將部分元素初始化后,其他元素的初始化值隱含為 0。3訪問數(shù)組元素訪問數(shù)組元素的語法格式為:其中,表達式是非負的整型表達式,也就是數(shù)組的下標,數(shù)組下標是用來指定所要訪問的 數(shù)
25、組中的元素的位置。注意:數(shù)組下標是從 0開始的。知識點3二維數(shù)組二維數(shù)組也稱二級向量,我們可以把二維數(shù)組看做一個其元素為一維數(shù)組的一維數(shù)組。定義二 維數(shù)組的一般格式為:mn;二維數(shù)組中的每個元素要用兩個下標來表示,前一個為行下標,后一個為列下標。因此,規(guī)定 m表示二維數(shù)組的行下標的大小,n表示二維數(shù)組的列下標的大小。其中,這兩個下標的取值范圍都是從0開始,而不是從1開始的。與一維數(shù)組一樣,二維數(shù)組也可在定義的同時進行初始化,方法也是類似的。舉例:int a22=1,1,3,2;但需要注意的是,如果對全部元素賦初值,一維數(shù)組能根據(jù)賦的初值的個數(shù)自動計數(shù)以確定數(shù)組的大小,所以定義的時候可不指定第一
26、維的大小,但第二維的大小是不可以省略的。知識點4字符數(shù)組1概念字符數(shù)組就是一個字符類型的數(shù)組,其中每一個元素存放一個字符。字符數(shù)組也稱字符串。C+規(guī)定,字符數(shù)組的最后一個元素一定是0。例如,字符數(shù)組存儲字符串 :” Hello World! ”的語句形式為:char str= ” Hello!world ! ”;但系統(tǒng)會自動在其末尾加一個空白字符0。 也 就是說字符數(shù)組存儲一個字符串比實際使用的字符串要多一個字節(jié)。2常用字符串函數(shù)C+提供了二系列字符串處理函數(shù),這些函數(shù)都包含在cstri ng.h頭文件中。(1)strcat(字符串1,字符串2)。此函數(shù)是字符串連接函數(shù),它的功能是把兩個字符串
27、連接起來。具體方法是把字符串2連接到字符串I的末端,并將結(jié)果存放到字符串1中。注意:存放結(jié)果字符串的數(shù)組的空間要確保足夠大。兩個字符串連接后,前一個數(shù)組最后的字符0 就消失了。(2)strcpy(字符串1,字符串2)。此函數(shù)是字符拷貝函數(shù),它的功能是把一個字符串中的字符拷貝到另一個字符串變量中。具體方法是把字符串2中的字符拷貝到字符串1中。注意:要確保存放結(jié)果的字符串1的空間足夠大。(3)strcmp(字符串1,字符串2)。此函數(shù)是字符串比較函數(shù),它是用來比較字符串的。比較方法是:若兩字符串相等(匹配),返回0( “假”);若字符串1在字典順序上比字符串2大,則返回一個正數(shù);若字符串1在字典順
28、序上比字符串2小,則返回一個負數(shù)。(4)strlen(字符串)。此函數(shù)是字符串長度函數(shù),它的功能是求字符串的長度。函數(shù)的值為字符串中不計 0的字符的個數(shù)。(5)strstr(字符串1,字符串2)。此函數(shù)是字符串查找函數(shù),它的功能是在一個字符串中查找子串。查找方法毫在字符串1中從左邊開始查找字符串2,若查找成功,返回字符串2在字符串I中第一次出現(xiàn)的位置否則返回NULL若字符串2為”,則返回字符串I。第6章指針與引用知識點1指針與地址指針是一種非常重要的派生數(shù)據(jù)類型,用它可以構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。具有指針類型的變量稱為指針變量,一個指針變量所存儲的信息是一個對象在內(nèi)存中的地址。通過指針變量可以間接地
29、訪問對象。指針變量聲明的一般格式為:數(shù)據(jù)類 *變量名其中,數(shù)據(jù)類型 是指針所指對象的類型,*和&是是指針所使用的兩個特殊運算符。(1) &是取地址運算符(2) *是間接引用運算符,它是獲得對象的值,并且它要求其操作對象是一個指針。在使用任何指針變量之前必須首先給它賦一個所指合法具體對象的內(nèi)存地址值。知識點2指針運算指針是一種數(shù)據(jù)類型,應(yīng)具有無符號整數(shù)的值。由于地址本身的特征,也給指針運算帶來一 些限制。一般來說,允許指針有4種運算:(1) 賦值運算??梢詫⒁粋€個指針所指向的變量地址值賦給它,也可以將一個數(shù)組的地值或者一個函數(shù)在內(nèi)存中的入口地址賦給所對應(yīng)的指針,還可以將一個已被賦值的指針賦給另一個相同類型的指針。int a,pa=&a;女口,指向一維數(shù)組int a10,*p;p=a;a=&a0,數(shù)組名為地址常量,首元素的地址女口,指向二維數(shù)組int b23,(*p)3p=b; b=&b0,數(shù)組名為地址常量,首行的地址女口,指向一個字符串char *p= ” hellO ” ; /指向字符串的首字符地址女口,指向多個字符串char *p3=“hello ” , ” world ” , ” am” ;(2) 指針與整數(shù)相加、減運算。例如:P+(3) 在一定的條件下,兩個指針可以相減
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南財經(jīng)大學(xué)《半導(dǎo)體物理與器件》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度風(fēng)力發(fā)電勞務(wù)分包施工合同協(xié)議2篇
- 2025年度二零二五年度未成年人撫養(yǎng)權(quán)自愿放棄及財產(chǎn)分割協(xié)議書3篇
- 2025年度夫妻共同贍養(yǎng)父母費用分配協(xié)議
- 2025年度航空航天材料購銷與技術(shù)共享合同
- 2025年度電子產(chǎn)品批發(fā)導(dǎo)購員服務(wù)及合作協(xié)議3篇
- 2025年度二零二五年度市場租賃租賃權(quán)變更合同2篇
- 2025年度高新技術(shù)企業(yè)工傷賠償補償協(xié)議書
- 2025年度高速公路隧道土方開挖與通風(fēng)設(shè)施安裝合同2篇
- 2025年度地下車位租賃與車位租賃市場維護合同3篇
- 《城市違法建設(shè)治理研究的文獻綜述》2100字
- 《XL集團破產(chǎn)重整方案設(shè)計》
- 智慧金融合同施工承諾書
- 國家開放大學(xué)電大本科《工程經(jīng)濟與管理》2023-2024期末試題及答案(試卷號:1141)
- TBT3134-2023機車車輛驅(qū)動齒輪箱 技術(shù)要求
- 美國史智慧樹知到期末考試答案章節(jié)答案2024年東北師范大學(xué)
- 滬教牛津版五年級下冊英語全冊課件
- 北京大學(xué)簡介介紹PPT模板
- 前置胎盤的手術(shù)配合課件
- 魚骨圖模板1PPT課件
- 浙江省杭州市2021-2022學(xué)年九年級(上)期末科學(xué)試題【含答案】
評論
0/150
提交評論