C++程序設(shè)計(jì)(自學(xué)考試國(guó)考)第一章_第1頁(yè)
C++程序設(shè)計(jì)(自學(xué)考試國(guó)考)第一章_第2頁(yè)
C++程序設(shè)計(jì)(自學(xué)考試國(guó)考)第一章_第3頁(yè)
C++程序設(shè)計(jì)(自學(xué)考試國(guó)考)第一章_第4頁(yè)
C++程序設(shè)計(jì)(自學(xué)考試國(guó)考)第一章_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1C+程序設(shè)計(jì)教材:機(jī)械工業(yè)出版社教材:機(jī)械工業(yè)出版社/劉振安劉振安2第一章認(rèn)識(shí)C+的對(duì)象3需要了解的C語言知識(shí)C C語言基本語法語言基本語法if else if else 語句語句 forfor語句語句whilewhile語句語句4本節(jié)要點(diǎn)本節(jié)要點(diǎn):C與與C+的關(guān)系的關(guān)系(領(lǐng)會(huì)領(lǐng)會(huì))掌握函數(shù)原型和命名空間的使用方法掌握函數(shù)原型和命名空間的使用方法(綜合應(yīng)用綜合應(yīng)用)對(duì)象和預(yù)處理基本概念對(duì)象和預(yù)處理基本概念(領(lǐng)會(huì)領(lǐng)會(huì))掌握掌握C+程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)(綜合應(yīng)用綜合應(yīng)用)1.1 1.1 初識(shí)初識(shí)C+C+的函數(shù)和對(duì)象的函數(shù)和對(duì)象5C語言回顧語言回顧int x; 該語句在該語句在C語言和語言

2、和C+中均可使用,中均可使用,x在在C語語言中稱為變量,在言中稱為變量,在C+中稱為對(duì)象。中稱為對(duì)象。 C語言與語言與C+的不同點(diǎn):的不同點(diǎn):稱呼不同稱呼不同6C語言回顧語言回顧結(jié)構(gòu)體的定義結(jié)構(gòu)體的定義struct point float x; float y; ; 7C語言回顧語言回顧結(jié)構(gòu)體的定義結(jié)構(gòu)體的定義struct student int num; char name10; float grade; ; 8#include using namespace std;int result (int, int);const int k=2; struct Point int x,y; ;in

3、t main ( ) /主程序 int z(0), b(0); Point a; couta.xa.y; z=(a.x+a.y)*k; z= result(z,b); cout “result is :”endl; cout “z=“ zendl; return 0int result (int a, int b) return a+b; /* 1-1.cpp*/ #include int result (int, int); #define k 2 struct Point int x,y; ;int main ( ) /*主程序主程序*/ int z=0, b=0; Point a; pr

4、intf (“ Input two interger:”); scanf(“%d%d”,&a.x,&a.y); z=(a.x+z.y)*k; z= result(z,b); printf (“result is :”); printf (“z=%dn“ ,z); return 0int result (int a, int b) return a+b; / 1-1.c9第一章認(rèn)識(shí)C+的對(duì)象1.1初識(shí)初識(shí)C+的函數(shù)和對(duì)象的函數(shù)和對(duì)象例例1.1輸入一個(gè)點(diǎn)的信息,求該點(diǎn)到原點(diǎn)的距離輸入一個(gè)點(diǎn)的信息,求該點(diǎn)到原點(diǎn)的距離10例例1.111例例1.1主主函函數(shù)數(shù)12例例1.113對(duì)程序的說

5、明:對(duì)程序的說明:1,混合型語言,混合型語言C語言程序包含語言程序包含main函數(shù)函數(shù)面向?qū)ο笳Z言沒有面向?qū)ο笳Z言沒有main函數(shù)函數(shù)C+是混合型語言是混合型語言C+ 兼容兼容C的語法,帶類的的語法,帶類的C文件擴(kuò)展名文件擴(kuò)展名 cpp h main()14對(duì)程序的說明:對(duì)程序的說明:2,注釋方式,注釋方式/* 。*/。15對(duì)程序的說明:對(duì)程序的說明:3 3,輸入輸出流,輸入輸出流cincin和和coutcout是是C+C+語言中進(jìn)行輸入輸出操作的函數(shù)。其語言中進(jìn)行輸入輸出操作的函數(shù)。其定義在定義在isstreamisstream頭文件中。頭文件中。類似:類似:C C語言中語言中printfp

6、rintf函數(shù)函數(shù)scanfscanf函數(shù)函數(shù)putcharputchar函數(shù)函數(shù)getchargetchar函數(shù),使用時(shí)要包含函數(shù),使用時(shí)要包含“stdio.h”stdio.h”16 C C+將數(shù)據(jù)從一個(gè)對(duì)象傳到另一個(gè)對(duì)象稱將數(shù)據(jù)從一個(gè)對(duì)象傳到另一個(gè)對(duì)象稱為流。為流。cout cout 是是C+C+中的標(biāo)準(zhǔn)輸出流中的標(biāo)準(zhǔn)輸出流( (通常為控制臺(tái),通常為控制臺(tái),即屏幕即屏幕) ), cout “hello c” cout “hello c” 把一串字符把一串字符串插入輸出流(控制臺(tái)輸出)中。串插入輸出流(控制臺(tái)輸出)中。 a.xa.y; cina.xa.y;將鍵盤輸入將鍵盤輸入的值賦予兩個(gè)變量

7、的值賦予兩個(gè)變量 是提取操作符。是提取操作符。cin ,cout cin ,cout 在的聲明在頭文件在的聲明在頭文件iostreamiostream中,中,所以要想使用所以要想使用cout cout 必須將該頭文件包括在程必須將該頭文件包括在程序開始處。序開始處。17對(duì)程序的說明:對(duì)程序的說明:3 3,輸入輸出流,輸入輸出流cincin和和coutcout的簡(jiǎn)單使用的簡(jiǎn)單使用coutcout后加要輸出的內(nèi)容,可以是對(duì)象或字符串,行后加要輸出的內(nèi)容,可以是對(duì)象或字符串,行末加分號(hào),可用多個(gè)末加分號(hào),可用多個(gè)來分隔多個(gè)輸出對(duì)象,來分隔多個(gè)輸出對(duì)象,endlendl;表示輸出后換行。表示輸出后換行

8、。coutendl; coutendl; 等價(jià)于等價(jià)于 cout“n”;coutcin后加存放數(shù)據(jù)的對(duì)象,即變量,行末加分號(hào),后加存放數(shù)據(jù)的對(duì)象,即變量,行末加分號(hào),可用多個(gè)可用多個(gè)來分隔多個(gè)輸入對(duì)象。來分隔多個(gè)輸入對(duì)象。cinxy;cinxy;等價(jià)于等價(jià)于 cinxcinx;cinyciny;19對(duì)程序的說明:對(duì)程序的說明:4 4,使用命名空間,使用命名空間是是C+C+語言中封裝程序庫(kù)名稱的一種機(jī)制語言中封裝程序庫(kù)名稱的一種機(jī)制記憶:記憶:C+C+標(biāo)準(zhǔn)類庫(kù)中的對(duì)象和函數(shù)都屬于標(biāo)準(zhǔn)類庫(kù)中的對(duì)象和函數(shù)都屬于stdstd命名空間命名空間使用這些對(duì)象和函數(shù)時(shí)要使用這些對(duì)象和函數(shù)時(shí)要using nam

9、espace std;using namespace std;20對(duì)程序的說明:對(duì)程序的說明:4 4,使用命名空間,使用命名空間使用使用stdstd命名空間時(shí)注意:命名空間時(shí)注意:使用使用C C語言中的頭文件時(shí),要寫成語言中的頭文件時(shí),要寫成“xxx.h”xxx.h”形式形式使用使用C+C+中的頭文件則不能加上中的頭文件則不能加上“.h”.h”21using namespace std; C+ C+標(biāo)準(zhǔn)函數(shù)庫(kù)的所有元素都被聲明在一標(biāo)準(zhǔn)函數(shù)庫(kù)的所有元素都被聲明在一個(gè)名空間中,這就是個(gè)名空間中,這就是stdstd名空間。因此為了能名空間。因此為了能夠訪問它的功能,我們用這條語句來表達(dá)我夠訪問它的功

10、能,我們用這條語句來表達(dá)我們將使用標(biāo)準(zhǔn)名空間中定義的元素。們將使用標(biāo)準(zhǔn)名空間中定義的元素。這條語句在使用標(biāo)準(zhǔn)函數(shù)庫(kù)的這條語句在使用標(biāo)準(zhǔn)函數(shù)庫(kù)的C+C+程序中頻繁程序中頻繁出現(xiàn),本教程中大部分代碼例子中也將用到出現(xiàn),本教程中大部分代碼例子中也將用到它。它。22對(duì)程序的說明:對(duì)程序的說明:5 5,對(duì)象定義及初始化,對(duì)象定義及初始化int xint x;x=0 x=0;等價(jià)于;等價(jià)于 int x=0int x=0; C C語言語言int xint x(0 0);); C+C+語言等價(jià)于上兩條語句。語言等價(jià)于上兩條語句。此種初始化語法在此種初始化語法在C+C+中稱為構(gòu)造函數(shù)語法中稱為構(gòu)造函數(shù)語法23對(duì)

11、程序的說明:對(duì)程序的說明:6 6,函數(shù)原型及其返回值,函數(shù)原型及其返回值函數(shù)要有類型,若要得到處理結(jié)果則要使用函數(shù)要有類型,若要得到處理結(jié)果則要使用returnreturn語語句。句。24對(duì)程序的說明:對(duì)程序的說明:6 6,函數(shù)原型及其返回值,函數(shù)原型及其返回值函數(shù)原型聲明函數(shù)原型聲明函數(shù)調(diào)用在函數(shù)定義之前時(shí)要對(duì)函數(shù)進(jìn)行聲明函數(shù)調(diào)用在函數(shù)定義之前時(shí)要對(duì)函數(shù)進(jìn)行聲明2526例:例:int result (int,int);int result (int,int);C+ C+ 要求所有函數(shù)都有函數(shù)原型要求所有函數(shù)都有函數(shù)原型程序的頂部程序的頂部頭文件頭文件函數(shù)類型應(yīng)和返回值的類型一致。函數(shù)類型應(yīng)和

12、返回值的類型一致。C C提供更強(qiáng)的類型檢查,允許編譯程序?qū)μ峁└鼜?qiáng)的類型檢查,允許編譯程序?qū)ο铝星闆r報(bào)錯(cuò)誤信息:下列情況報(bào)錯(cuò)誤信息:被調(diào)用函數(shù)參數(shù)類型定義和類型轉(zhuǎn)換非法被調(diào)用函數(shù)參數(shù)類型定義和類型轉(zhuǎn)換非法函數(shù)的參數(shù)個(gè)數(shù)不相符函數(shù)的參數(shù)個(gè)數(shù)不相符函數(shù)不能返回預(yù)定的數(shù)據(jù)類型函數(shù)不能返回預(yù)定的數(shù)據(jù)類型27對(duì)程序的說明:對(duì)程序的說明:7 7,constconst修飾符和預(yù)處理程序修飾符和預(yù)處理程序常量定義:常量定義:#define PI 3.1415 #define PI 3.1415 (c c語言)語言)在變量定義之前加上在變量定義之前加上constconst關(guān)鍵字,表示定義的變量關(guān)鍵字,表示定義的

13、變量值不可改變。值不可改變。const int PI=3.1415const int PI=3.1415;const int PIconst int PI(3.14153.1415););28對(duì)程序的說明:對(duì)程序的說明:7 7,constconst修飾符和預(yù)處理程序修飾符和預(yù)處理程序C+C+預(yù)處理命令預(yù)處理命令以以# #開始,分為宏定義,文件包含和條件編譯開始,分為宏定義,文件包含和條件編譯29一個(gè)常量(一個(gè)常量(constantconstant)是一個(gè)有固定值的表達(dá)式。是一個(gè)有固定值的表達(dá)式。(1 1) # #define PI 3.14159265define PI 3.14159265

14、#define #define tab n n #define #define width 100 100 (2 2)通過使用)通過使用constconst前綴,你可以定義指定類型前綴,你可以定義指定類型的常量,就像定義一個(gè)變量一樣的常量,就像定義一個(gè)變量一樣: :const int width = 100;const int width = 100;const char tab = t;const char tab = t;const int widthconst int width(100100); ;const int width const int width ;30 對(duì)程序的說明:對(duì)

15、程序的說明: 8 8,程序運(yùn)行結(jié)果,程序運(yùn)行結(jié)果 9 9,程序書寫規(guī)則,程序書寫規(guī)則 注意縮進(jìn)對(duì)齊,使程序清晰明了注意縮進(jìn)對(duì)齊,使程序清晰明了311.2 認(rèn)識(shí)認(rèn)識(shí)C+語言面向過程編程的特點(diǎn)語言面向過程編程的特點(diǎn)本節(jié)要點(diǎn)本節(jié)要點(diǎn):函數(shù)重載函數(shù)重載(領(lǐng)會(huì)領(lǐng)會(huì))掌握掌握C+的新數(shù)據(jù)類型的新數(shù)據(jù)類型(簡(jiǎn)單應(yīng)用簡(jiǎn)單應(yīng)用)動(dòng)態(tài)分配內(nèi)存動(dòng)態(tài)分配內(nèi)存(綜合應(yīng)用綜合應(yīng)用)熟練掌握引用的使用方法熟練掌握引用的使用方法(綜合應(yīng)用綜合應(yīng)用)了解對(duì)指針使用了解對(duì)指針使用const限定符的目的限定符的目的,方法方法(識(shí)記識(shí)記)了解泛型算法應(yīng)用于普通數(shù)組的方法了解泛型算法應(yīng)用于普通數(shù)組的方法(識(shí)記識(shí)記)掌握數(shù)據(jù)的簡(jiǎn)單輸入輸

16、出掌握數(shù)據(jù)的簡(jiǎn)單輸入輸出(簡(jiǎn)單應(yīng)用簡(jiǎn)單應(yīng)用)321.2 認(rèn)識(shí)認(rèn)識(shí)C+語言面向過程編程的特點(diǎn)語言面向過程編程的特點(diǎn)1.2.1函數(shù)重載函數(shù)重載(領(lǐng)會(huì)領(lǐng)會(huì))C+允許一個(gè)函數(shù)定義多個(gè)版本。允許一個(gè)函數(shù)定義多個(gè)版本。使得一個(gè)函數(shù)完成多種功能。使得一個(gè)函數(shù)完成多種功能。即:同一個(gè)函數(shù)名定義多次。即:同一個(gè)函數(shù)名定義多次。33函數(shù)具有相同的名字,但有不同的參數(shù),完成不同函數(shù)具有相同的名字,但有不同的參數(shù),完成不同的操作和功能。的操作和功能。重載函數(shù)至少在參數(shù)的個(gè)數(shù)、參數(shù)的類型、或參數(shù)重載函數(shù)至少在參數(shù)的個(gè)數(shù)、參數(shù)的類型、或參數(shù)的順序上有所不同。的順序上有所不同。/ overloaded function#i

17、nclude using namespace std;int divide (int a, int b) return (a/b); float divide (float a, float b) return (a/b);int main ( ) int x=5,y=2;float n=5.0,m=2.0;cout divide (x,y);cout n;cout divide (n,m);cout n;return 0; 34重載函數(shù)重載函數(shù)max的定義形式:的定義形式:35重載函數(shù)重載函數(shù)max的聲明形式:的聲明形式:36重載函數(shù)重載函數(shù)max的調(diào)用形式:的調(diào)用形式:371.2.2 C+

18、的新數(shù)據(jù)類型的新數(shù)據(jù)類型(簡(jiǎn)單應(yīng)用簡(jiǎn)單應(yīng)用)383940414243441.2.3 動(dòng)態(tài)分配內(nèi)存動(dòng)態(tài)分配內(nèi)存(綜合應(yīng)用綜合應(yīng)用) 451.2.3 動(dòng)態(tài)分配內(nèi)存動(dòng)態(tài)分配內(nèi)存(綜合應(yīng)用綜合應(yīng)用)new 動(dòng)態(tài)分配內(nèi)存動(dòng)態(tài)分配內(nèi)存一般格式:一般格式:指針變量指針變量=new 類型類型 size; new 運(yùn)算符得到新分配空間的首地址,賦值給指針運(yùn)算符得到新分配空間的首地址,賦值給指針變量后,可根據(jù)指針變量的加減運(yùn)算來使用這些空間。變量后,可根據(jù)指針變量的加減運(yùn)算來使用這些空間。delete 釋放內(nèi)存釋放內(nèi)存 使用完畢后要釋放內(nèi)存使用完畢后要釋放內(nèi)存delete p;46 操作符操作符newnew的存在

19、是為了要求動(dòng)態(tài)內(nèi)存。的存在是為了要求動(dòng)態(tài)內(nèi)存。new new 后面跟一個(gè)數(shù)據(jù)類型,并跟一對(duì)可選后面跟一個(gè)數(shù)據(jù)類型,并跟一對(duì)可選的方括號(hào)的方括號(hào) 里面為要求的元素?cái)?shù)。它返里面為要求的元素?cái)?shù)。它返回一個(gè)指向內(nèi)存塊開始位置的指針。其形回一個(gè)指向內(nèi)存塊開始位置的指針。其形式為:式為:p = new p = new 類型名類型名; ;用來給一個(gè)單元素的數(shù)據(jù)類型分配內(nèi)存。用來給一個(gè)單元素的數(shù)據(jù)類型分配內(nèi)存。p = new p = new 類型名類型名 SIZE;SIZE;用來給一個(gè)數(shù)組分配內(nèi)存。用來給一個(gè)數(shù)組分配內(nèi)存。操作符操作符new new 和和new new 47給一個(gè)數(shù)組分配內(nèi)存給一個(gè)數(shù)組分配內(nèi)存

20、int a10,int a10,* *p=a,i;p=a,i;for (i=0;i10;i+)for (i=0;i10;i+) scanf(“%d”,p+i); scanf(“%d”,p+i);for (i=0;i10;i+)for (i=0;ik;/k=10cink;/k=10p= new intk;p= new intk;for (int i=0;ik;i+)for (int i=0;i cin* *(p+i);(p+i);for (i=0;ik;i+)for (i=0;ik;i+) coutpi“ “; coutpi“ “;delete p;delete p;48給一個(gè)單元素的數(shù)據(jù)類型分

21、配內(nèi)存給一個(gè)單元素的數(shù)據(jù)類型分配內(nèi)存#include using namespace std;struct Point int x,y; ;int main ( ) /主程序主程序 Point *p; p = new Point ; coutp-xp-y ; coutxy ; delete p; return 0;#include struct Point int x,y; ;int main ( ) /*主程序主程序*/ Point a *p; p=&a; printf (“ Input two interger:”); scanf(“%d%d”,&a.x,&a.y)

22、; printf(“%d%d”,a.x,a.y); return 0;49 刪除操作符刪除操作符 deletedelete 既然動(dòng)態(tài)分配的內(nèi)存只是在程序運(yùn)行的某既然動(dòng)態(tài)分配的內(nèi)存只是在程序運(yùn)行的某一具體階段才有用,那么一旦它不再被需要一具體階段才有用,那么一旦它不再被需要時(shí)就應(yīng)該被釋放,以便給后面的內(nèi)存申請(qǐng)使時(shí)就應(yīng)該被釋放,以便給后面的內(nèi)存申請(qǐng)使用。操作符用。操作符delete delete 因此而產(chǎn)生,它的形式是:因此而產(chǎn)生,它的形式是:delete pointer;delete pointer;delete pointer;delete pointer; 第一種表達(dá)形式用來刪除給單個(gè)元素分

23、第一種表達(dá)形式用來刪除給單個(gè)元素分配的內(nèi)存,第二種表達(dá)形式用來刪除多元素配的內(nèi)存,第二種表達(dá)形式用來刪除多元素(數(shù)組)的內(nèi)存分配。在多數(shù)編譯器中兩種(數(shù)組)的內(nèi)存分配。在多數(shù)編譯器中兩種表達(dá)式等價(jià),使用沒有區(qū)別表達(dá)式等價(jià),使用沒有區(qū)別, 501.2.4 引用的使用方法引用的使用方法(綜合應(yīng)用綜合應(yīng)用) C+中新的表示形式。中新的表示形式。 引用即使用變量的別名。引用即使用變量的別名。 定義形式:定義形式:數(shù)據(jù)類型數(shù)據(jù)類型 & 別名別名=對(duì)象名;對(duì)象名;作用:別名與對(duì)象名對(duì)應(yīng)同一個(gè)對(duì)象,共用同一段內(nèi)存。作用:別名與對(duì)象名對(duì)應(yīng)同一個(gè)對(duì)象,共用同一段內(nèi)存。對(duì)別名的修改會(huì)造成原對(duì)象的修改。對(duì)別

24、名的修改會(huì)造成原對(duì)象的修改。例如:例如:int x; int & a=x;表示表示a是變量是變量x的別名。的別名。一旦定義別名后則一旦定義別名后則a和和x完全等價(jià)。完全等價(jià)。511.2.4 引用的使用方法引用的使用方法(綜合應(yīng)用綜合應(yīng)用)C+中新的表示形式。中新的表示形式。引用即使用變量的別名。引用即使用變量的別名。定義形式:數(shù)據(jù)類型定義形式:數(shù)據(jù)類型 & 別名別名=對(duì)象名;對(duì)象名;52引用是指給對(duì)象的地址取個(gè)別名,引用是指給對(duì)象的地址取個(gè)別名, 數(shù)據(jù)類型數(shù)據(jù)類型 & & 別名別名= =對(duì)象名(正名)對(duì)象名(正名) int a=56, b ;int a=56,

25、b ; int &ra1=a; int &ra2=ra1; int &ra1=a; int &ra2=ra1; 對(duì)別名的改動(dòng)則是對(duì)正名的改動(dòng)。對(duì)別名的改動(dòng)則是對(duì)正名的改動(dòng)。引用不占有存儲(chǔ)空間,別名和對(duì)象(正引用不占有存儲(chǔ)空間,別名和對(duì)象(正名)占有相同存儲(chǔ)空間名)占有相同存儲(chǔ)空間53引用作為函數(shù)參數(shù)引用作為函數(shù)參數(shù)-地址傳遞地址傳遞不能直接聲明對(duì)數(shù)組的引用不能直接聲明對(duì)數(shù)組的引用不能聲明對(duì)引用的引用不能聲明對(duì)引用的引用 int& &r=x;int& &r=x;可以聲明對(duì)指針的引用??梢月暶鲗?duì)指針的引用。 int x, int x,

26、 * *p2=&x; int p2=&x; int * * &p1=p2; &p1=p2; int int * * &p3= p2; p1= &x; &p3= p2; p1= &x; int x=56; int &a=x; int x=56; int &a=x; int int * *p= &x; int p= &x; int * *p= &a;p= &a;54使用引用時(shí)注意:使用引用時(shí)注意:1 1,不能定義引用的引用,不能定義引用的引用 int & & r=x;in

27、t & & r=x;2 2,不能直接定義數(shù)組的引用,不能直接定義數(shù)組的引用551.2.4 引用的使用方法引用的使用方法(綜合應(yīng)用綜合應(yīng)用)一般格式:一般格式:typedef typedef 類型類型 類型別名類型別名使用使用typedeftypedef定義某類型別名后,可使用該定義某類型別名后,可使用該別名來定義相關(guān)對(duì)象。別名來定義相關(guān)對(duì)象。例如:例如:typedef long int lint;typedef long int lint;則則 long int i ;long int i ; 等價(jià)于等價(jià)于 lint i ;lint i ;Typedef使用說明使用說明type

28、deftypedef用法總結(jié):建立一個(gè)類型別名的方法用法總結(jié):建立一個(gè)類型別名的方法很簡(jiǎn)單,在傳統(tǒng)的變量聲明表達(dá)式里用類型別很簡(jiǎn)單,在傳統(tǒng)的變量聲明表達(dá)式里用類型別名替代類型名,然后把關(guān)鍵字名替代類型名,然后把關(guān)鍵字typedeftypedef加在該加在該語句的開頭語句的開頭 56等價(jià)于等價(jià)于間接引用數(shù)組名作參數(shù)間接引用數(shù)組名作參數(shù)array &b=x;array &b=x;5758例例 1-41-4#include using namespace std;void main ( ) int x=56; int &a=x; int &r=x; coutx=x &

29、amp;x=&xendl; couta=a &a=&aendl; coutr=r &r=&rendl; r= 78; coutafter r=78endl; coutx=x &x=&xendl; couta=a &a=&aendl; coutr=r &r=&rendl;59例例 1-5 1-5 間接引用數(shù)組間接引用數(shù)組#include using namespace std;typedef int array10;void main ( ) array a=1,2,3,4,5,6,7,8,9,10; arr

30、ay &b=a; b9=0; cout b10 endl; for (int i=0;i10;i+) coutbi ; coutendl; cout a10 endl; for (i=0;i10;i+) coutai ; coutendl;601.2.5 對(duì)指針使用對(duì)指針使用const限定符限定符(識(shí)記識(shí)記)611.2.5 對(duì)指針使用對(duì)指針使用const限定符限定符(識(shí)記識(shí)記)const int *p; 表示表示*p是常量,不能被賦值,是常量,不能被賦值, *p=66;622. 指向常量的指針指向常量的指針#include using namespace std;void main (

31、 ) const int y=58; const int *p=&y; int x=45, z; const int *p1=&x; z=*p1+*p; coutz=zendl; p1= &y; /*p1=y; z=*p1+*p; coutz=zendl; 631.2.5 對(duì)指針使用對(duì)指針使用const限定符限定符(識(shí)記識(shí)記)64int x=45 ,y ; int * const p=&x; 表示表示p是常量,需要初始化是常量,需要初始化 p 不能被賦值,不能被賦值, p=&y;#include using namespace std;void main

32、 ( ) int y=58, x=66; int * const p=&y; cout“y=yendl; *p=66; /p=&x; cout“y=yendl; 651.2.5 對(duì)指針使用對(duì)指針使用const限定符限定符(識(shí)記識(shí)記)661.2.6 泛型算法應(yīng)用于普通數(shù)組泛型算法應(yīng)用于普通數(shù)組(識(shí)記識(shí)記)泛型算法是泛型算法是C+標(biāo)準(zhǔn)模板庫(kù)標(biāo)準(zhǔn)模板庫(kù)(Standard Template Library)提供的一組操作。利用這些操作可以簡(jiǎn)化數(shù)組操作。提供的一組操作。利用這些操作可以簡(jiǎn)化數(shù)組操作。要使用這些操作必須包含頭文件要使用這些操作必須包含頭文件671.2.6 泛型算法應(yīng)用于普通

33、數(shù)組泛型算法應(yīng)用于普通數(shù)組(識(shí)記識(shí)記)假定假定a,b是兩個(gè)數(shù)組名,其長(zhǎng)度為是兩個(gè)數(shù)組名,其長(zhǎng)度為len操作示例:操作示例:1,reverse(a,a+len)將數(shù)組將數(shù)組a中的元素順序反轉(zhuǎn)。(逆向)中的元素順序反轉(zhuǎn)。(逆向)2,copy(a,a+len,b)將將a數(shù)組的內(nèi)容原樣復(fù)制給數(shù)組的內(nèi)容原樣復(fù)制給b數(shù)組數(shù)組3. reverse_copy (a,a+len,b)將將a數(shù)組的內(nèi)容反轉(zhuǎn)后復(fù)制給數(shù)組的內(nèi)容反轉(zhuǎn)后復(fù)制給b數(shù)組數(shù)組681.2.6 泛型算法應(yīng)用于普通數(shù)組泛型算法應(yīng)用于普通數(shù)組(識(shí)記識(shí)記)假定假定a,b是兩個(gè)數(shù)組名,其長(zhǎng)度為是兩個(gè)數(shù)組名,其長(zhǎng)度為len操作示例:操作示例:reverse_

34、copy (a,a+len,b)3,sort(a,a+len)將數(shù)組將數(shù)組a中的元素按升序排序中的元素按升序排序4,sort(a,a+len,greater()將數(shù)組將數(shù)組a中的元素按降序排序中的元素按降序排序691.2.6 泛型算法應(yīng)用于普通數(shù)組泛型算法應(yīng)用于普通數(shù)組(識(shí)記識(shí)記)5,find(a,a+len,value)在數(shù)組在數(shù)組a中查找值為中查找值為value的元素,并返回位置指針的元素,并返回位置指針假定假定a,b是兩個(gè)數(shù)組名,其長(zhǎng)度為是兩個(gè)數(shù)組名,其長(zhǎng)度為len操作示例:操作示例: find(a,a+len,4)701.2.6 泛型算法應(yīng)用于普通數(shù)組泛型算法應(yīng)用于普通數(shù)組(識(shí)記識(shí)記)

35、6,輸出數(shù)組中的內(nèi)容,輸出數(shù)組中的內(nèi)容Copy(a,a+len, Ostream_iterator (cout,”字符串字符串”))Ostream_iterator表示輸出流操作符表示輸出流操作符:表示要輸出的數(shù)組類型表示要輸出的數(shù)組類型Cout表示流輸出操作表示流輸出操作“字符串字符串”:表示分隔字符串:表示分隔字符串71例例 1-6 數(shù)組升冪排序數(shù)組升冪排序 、復(fù)制、輸出、復(fù)制、輸出#include #include using namespace std;void main ( ) double a =1.1, 4.4, 3.3, 2.2, b4; copy(a,a+4,ostream_iterator(cout, ); reverse_copy(a,a+4,ostream_iterator(cout, ); copy(a,a+4,b); copy(b,b+4,ostream_iterator(cout, ); sort(a,a+4); copy(a,a+4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論