c++期末復(fù)習(xí)知識(shí)點(diǎn)_第1頁(yè)
c++期末復(fù)習(xí)知識(shí)點(diǎn)_第2頁(yè)
c++期末復(fù)習(xí)知識(shí)點(diǎn)_第3頁(yè)
c++期末復(fù)習(xí)知識(shí)點(diǎn)_第4頁(yè)
c++期末復(fù)習(xí)知識(shí)點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.VisualC++的基本概念

(i)標(biāo)識(shí)符:

以字母、數(shù)字、下劃線組成的字符序列,第一個(gè)字符必須是字母或下劃線。

不能與關(guān)鍵字同名,且不含空格標(biāo)點(diǎn)符號(hào)和其他字符,同時(shí)區(qū)分大小寫(xiě)。

例:不正確的:enum、int、2b>a+3、a-3、#include等均不是正確的標(biāo)識(shí)符

正確的:_32、include、Int、a_3、abc

(2)數(shù)據(jù)類型:

字符型(char,1)、整型(int,4)、實(shí)型(float,4),雙精度(double,8),無(wú)值型(void,0)、

布爾型(bool,1)

int之前還可以用unsigned、signed、short、long修飾,表示不同字節(jié)的整數(shù)類型

char之前還可以用unsigned、signed修飾

(表達(dá)式的數(shù)據(jù)類型以整個(gè)表達(dá)式中最高的數(shù)據(jù)類型為準(zhǔn))

例:T+'2'、T+2、18/3+5.、18+5.0/2,注意常用數(shù)學(xué)函數(shù)的返回值類型

(3)常量:(字面常量、標(biāo)識(shí)符常量)

整型常量——有十進(jìn)制、八進(jìn)制(以0開(kāi)頭)、十六進(jìn)制(0X(x)開(kāi)頭)三種形式;

實(shí)型常量——有普通和科學(xué)計(jì)數(shù)法兩種形式??茖W(xué)計(jì)數(shù)法時(shí),e的前面必須要有數(shù)字,

且在e之后必須是整數(shù);(注意2.5f和2.5的區(qū)別,注意2.0和2.)

字符型常量一一必須以單引號(hào)引起來(lái),轉(zhuǎn)義序列以“\”開(kāi)始,用數(shù)值描述時(shí)有\(zhòng)ddd和

\xhh兩種形式,即只能是一個(gè)八進(jìn)制或十六進(jìn)制的數(shù),取值范圍在0~255,且十六進(jìn)制

必須以x開(kāi)頭。

字符串型常量——用雙引號(hào)括起來(lái),存儲(chǔ)時(shí)系統(tǒng)默認(rèn)在結(jié)尾添加“\0”。區(qū)分sizeof(字

符串)和strlen(字符串)的值。

標(biāo)識(shí)符常量的定義----#definea4

常變量的定義----constinta=4;

注意標(biāo)識(shí)符常量和常變量?jī)烧叩漠愅c(diǎn)

(4)變量:

需遵循“先定義后使用,先賦值再操作”的原則。

(5)算術(shù)運(yùn)算符:(詳見(jiàn)書(shū),幾個(gè)需要注意的如下)

"/"運(yùn)算符:兩邊都是整型,則做整除運(yùn)算(去尾取整),有一個(gè)是實(shí)型,則是真正的

商。

“%”運(yùn)算符:取余,其兩邊都必須是整型數(shù)。

(6)關(guān)系運(yùn)算符:

關(guān)系成立,表達(dá)式結(jié)果為整數(shù)1,否則為整數(shù)0。

(7)邏輯運(yùn)算符:!&&||

非0為真,用整數(shù)1表示,0為假。注意邏輯運(yùn)算表達(dá)式計(jì)算時(shí)的優(yōu)化問(wèn)題(短路特

性).

(8)sizeof()運(yùn)算符:用于計(jì)算某一操作數(shù)類型的字節(jié)數(shù)。

(9)賦值表達(dá)式:

=左邊只能是變量,a++或a-不能放在=左邊

=兩邊數(shù)據(jù)類型不同時(shí),以左邊的數(shù)據(jù)類型為準(zhǔn)

=的優(yōu)先級(jí)僅高于逗號(hào)運(yùn)算符

復(fù)合的賦值表達(dá)式中,將復(fù)合的賦值運(yùn)算符右邊的部分看作一個(gè)整體進(jìn)行處理

(10)逗號(hào)表達(dá)式:

從左往右依次計(jì)算各表達(dá)式,以最后一個(gè)表達(dá)式的值作為整個(gè)逗號(hào)表達(dá)式的值。

(11)強(qiáng)制類型轉(zhuǎn)換:

(type)表達(dá)式或type(表達(dá)式)

(12)優(yōu)先級(jí)順序:

單目?jī)?yōu)于雙目,雙目?jī)?yōu)于三目,在此基礎(chǔ)上,算術(shù)一位移(插入、提?。┮魂P(guān)系一位一

邏輯一條件f賦值一逗號(hào)。(優(yōu)先級(jí)的序號(hào)越小,其優(yōu)先級(jí)越高)

(13)自增(++),自減(-)運(yùn)算符

誰(shuí)在前先做誰(shuí),只能對(duì)變量進(jìn)行++或一。

a++或a-的結(jié)果可理解為表達(dá)式,++a或-a的結(jié)果可理解為變量。

常與邏輯運(yùn)算的短路特性合在一起考查

(14)數(shù)據(jù)的輸入和輸出:C++語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。(P36)

在輸入數(shù)據(jù)的過(guò)程中,如果輸入的一行僅僅是一個(gè)回車時(shí),cin把該鍵作為空格處

理,仍等待輸入數(shù)據(jù)。

需要注意的是,用cin輸入數(shù)據(jù)時(shí),實(shí)際輸入數(shù)據(jù)的個(gè)數(shù)、類型及順序,必須與

eg中列舉的變量一一對(duì)應(yīng),否則輸入的數(shù)據(jù)不準(zhǔn)確。列如:

intb;

charc='x';

cin?b?c;

cout?b?','?c?endl;

若輸入宜,則輸出的是整

則變量b的值為0,而變量c沒(méi)有獲得輸入的值,并使后面的便n無(wú)法正確提取數(shù)

據(jù)。

(15)C++語(yǔ)言用非零值表示邏輯“真”值。

2.VisualC++的基本語(yǔ)句(順序、選擇、循環(huán))

(1)單選語(yǔ)句:

if(表達(dá)式)S

表達(dá)式的值非0(成立),則執(zhí)行S;否則,跳過(guò)S直接執(zhí)行后繼的語(yǔ)句。

(2)二選一語(yǔ)句:

if(表達(dá)式)

{S1;}

else

{S2;}

*表達(dá)式可以是符合C++語(yǔ)法規(guī)則的任一表達(dá)式

*表達(dá)式非0(成立),執(zhí)行S1;否則執(zhí)行S2.

(3)嵌套的條件語(yǔ)句:

if(表達(dá)式1)

{S1;}

elseif(表達(dá)式2)

{S2;}

else

{S;}

注意:else和誰(shuí)配對(duì)?與最靠近它的且沒(méi)有else與之配對(duì)的if進(jìn)行配對(duì)

(4)條件運(yùn)算符:?:

表達(dá)式1?表達(dá)式2:表達(dá)式3

表達(dá)式1成立,以表達(dá)式2的值為整個(gè)表達(dá)式的結(jié)果,否則以表達(dá)式3的值為整個(gè)表

達(dá)式的結(jié)果

(5)開(kāi)關(guān)語(yǔ)句switch語(yǔ)句:

switch(表達(dá)式)

(

case常量表達(dá)式1:SI;break;

case常量表達(dá)式2:S2;break;

default:S3;

}

例:inta=7;

switch(a%5)

{caseO:cout?a++;

casel:cout?++a;

case2:cout?a―;

case3:cout?-a;

default:cout?a;}輸出的結(jié)果是755.你知道是為什么嗎?

intk=0;

charc=,A';

do{

switch(C++),輸出的結(jié)果是4,但是你猜猜如果把c++改成++c結(jié)果會(huì)是什么呢,

沒(méi)錯(cuò)就是2.啦啦啦

case'A':k++;break;

case'B':k一;

case'C':k+=2;break;

case'D':k=k%2;continue;

case'E':k=k*10;break;

default:k=k/3;}k++;

}while(c<JG');

cout?k?endl;

*表達(dá)式和常量表達(dá)式的值只能是整型、字符型或枚舉型。

*根據(jù)表達(dá)式的值選一個(gè)對(duì)應(yīng)的常量表達(dá)式后的語(yǔ)句執(zhí)行,直到碰到break或switch

的}結(jié)束

*default的位置沒(méi)有規(guī)定,但需考慮是否要添加break

*if和switch使用的注意:前者可以表示連續(xù)的條件區(qū)間也可以表示離散的條件,

而后者只能表示離散的條件,因此,任一個(gè)switch結(jié)構(gòu)可以轉(zhuǎn)換成if結(jié)構(gòu),但反之不

行。當(dāng)用switch表示連續(xù)的條件時(shí)需設(shè)法將連續(xù)的條件轉(zhuǎn)換成離散的形式。

(6)循環(huán)語(yǔ)句:

while(表達(dá)式)

s

執(zhí)行過(guò)程:表達(dá)式非0做循環(huán)體S。循環(huán)體有可能一次也不被執(zhí)行。

do{

while(表達(dá)式);(分號(hào)不可以忘)

執(zhí)行過(guò)程:先執(zhí)行循環(huán)體S,再判斷表達(dá)式的值,非。繼續(xù)循環(huán)。循環(huán)體至少做一次

for((表達(dá)式1>《表達(dá)式2>;<表達(dá)式3?S

執(zhí)行過(guò)程:

|計(jì)算表達(dá)式

表達(dá)式1、2、3均可省略,若省略,需在合適的位置進(jìn)行處理

*三種循環(huán)可以相互轉(zhuǎn)換,不管用哪種循環(huán),一定要把握好循環(huán)條件(什么樣的情況

下循環(huán))、循環(huán)體(循環(huán)做什么)

*不能出現(xiàn)死循環(huán)!

(7)break、continue語(yǔ)句

break一一跳出整個(gè)循環(huán),不再循環(huán)(結(jié)束該層的循環(huán))

continue-----結(jié)束本次循環(huán),進(jìn)入下一次循環(huán)

3.函數(shù)

(1)C++源程序、目標(biāo)程序、可執(zhí)行程序的后綴名。

(2)任何一個(gè)C++程序必須有一個(gè)且只能有一個(gè)main函數(shù)。

(3)函數(shù)要先定義后使用,若先使用后定義需在使用前加函數(shù)廢室說(shuō)密?〈綠史分p32.772)

列如:int此原型聲明即是對(duì)的。

intf2(int=l,int);此原型聲明即是錯(cuò)的。

(4)函數(shù)不能嵌套定義,但可以嵌套調(diào)用(遞歸)。

(5)形式參數(shù)和實(shí)際參數(shù):在函數(shù)定義中,在參數(shù)表中一一列出的參數(shù)稱為形式參數(shù)(對(duì)

于函數(shù)體來(lái)說(shuō),它們是已知量、要在函數(shù)體中進(jìn)行處理的量,無(wú)需再重新定義);在函

數(shù)調(diào)用時(shí)依次列舉的參數(shù)稱為實(shí)際參數(shù)(傳遞給函數(shù)實(shí)際處理的值或量)。即當(dāng)調(diào)用函

數(shù)時(shí),實(shí)參和形參各占一個(gè)獨(dú)立的存儲(chǔ)單元。

(6)函數(shù)的返回值:

每個(gè)函數(shù)都可以有return語(yǔ)句。

若函數(shù)無(wú)返回值,則可不寫(xiě)return語(yǔ)句,或直接寫(xiě)“return;",若函數(shù)有返回值,則必

須有return語(yǔ)句。C++語(yǔ)言的函數(shù)中,return語(yǔ)句中的表達(dá)式的類型可以與函數(shù)的類型不一

致。

一個(gè)return只能返回一個(gè)值,同一時(shí)刻只有一個(gè)return語(yǔ)句有效。

(7)函數(shù)的調(diào)用:(各函數(shù)之間即允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用)

語(yǔ)句調(diào)用、表達(dá)式調(diào)用

函數(shù)調(diào)用時(shí),實(shí)參和形參之間有傳值、傳址、引用三種不同的數(shù)據(jù)傳遞形式

(8)標(biāo)識(shí)符的作用域:

*這里的標(biāo)識(shí)符其實(shí)包括了變量和常量,所謂作用域則說(shuō)明了標(biāo)識(shí)符能被使用的范

圍。

*作用域分為塊作用域、文件作用域、函數(shù)原型作用域、函數(shù)作用域、類作用域和命

名空間作用域

*塊作用域:在塊內(nèi)說(shuō)明的標(biāo)識(shí)符,其作用域始于標(biāo)識(shí)符的說(shuō)明處,止于塊的結(jié)尾處。

只能在該塊內(nèi)引用。

*文件作用域:在所有函數(shù)之外定義的變量稱為全局變量。全局變量(標(biāo)識(shí)符)的作用

域。從定義位置開(kāi)始到該源程序文件結(jié)束。也可通過(guò)extern將其作用域外延到包含它

的工程中的其它文件。

*同一塊內(nèi)不允許出現(xiàn)同名的局部變量,不同塊作用域內(nèi)允許,當(dāng)兩個(gè)塊重疊的情況

下出現(xiàn)局部變量重名,則遵循“縣官不如現(xiàn)管”的原則。

*局部變量和全局變量重名時(shí),也遵循“縣官不如現(xiàn)管”的原則。此時(shí)若想在同名的

局部變量作用域內(nèi)強(qiáng)制訪問(wèn)該全局變量可通過(guò)域作用符(::)訪問(wèn)

(9)變量的存儲(chǔ)類型:auto、static>extern,register

在C++語(yǔ)言中,函數(shù)的默認(rèn)存儲(chǔ)種類是extern。

在C++語(yǔ)言中,全局變量的默認(rèn)存儲(chǔ)種類是extern。

auto類型的變量在程序運(yùn)行到定義處系統(tǒng)為之分配內(nèi)存,在其作用域完結(jié)處系統(tǒng)自動(dòng)

回收其存儲(chǔ)區(qū)域

static類型的量分為static局部變量和static全局變量。兩者均在程序一運(yùn)行時(shí)系統(tǒng)就

為其分配內(nèi)存,但它們的作用域仍遵循各自的作用域特性,static局部變量會(huì)出現(xiàn)雖存

在但不能被訪問(wèn)(不在作用域范圍內(nèi))的情況。

用static修飾局部變量的時(shí),其初始化是在相關(guān)函數(shù)或語(yǔ)句塊第一次被執(zhí)行時(shí)完成的,

以后再執(zhí)行相關(guān)函數(shù)或語(yǔ)句時(shí)不再被執(zhí)行。在程序執(zhí)行期間,這些變量一直占用固定

的存儲(chǔ)空間,保持著最近一次的操作結(jié)果。

在程序聲明的全局變量總是靜態(tài)變量,其默認(rèn)值是0。若在聲明全局變量的時(shí)候加上

static,則表示所聲明的變量?jī)H限本源程序文件內(nèi)使用。

(10)內(nèi)聯(lián)函數(shù):(實(shí)質(zhì)是用存儲(chǔ)空間換取運(yùn)行時(shí)間)

用inline說(shuō)明。在編譯時(shí)將函數(shù)體嵌入到每個(gè)內(nèi)聯(lián)函數(shù)調(diào)用處,省去了函數(shù)調(diào)用時(shí)的參

數(shù)傳遞、系統(tǒng)棧的保護(hù)與恢復(fù)等的時(shí)間開(kāi)銷,但增加了代碼(消耗了內(nèi)存空間)。

(11)函數(shù)重載:

判斷重載:同函數(shù)名,形參的個(gè)數(shù)或類型不同。(與函數(shù)的返回值無(wú)關(guān))

(12)缺省參數(shù)值的函數(shù):

在調(diào)用函數(shù)時(shí),若明確給出了參數(shù)的值,則使用相應(yīng)參數(shù)的值;若沒(méi)有給出參數(shù)值,

則使用缺省值。

缺省值的給定需從最右邊的參數(shù)開(kāi)始。

(13)exit和return的使用

4.數(shù)組

(1)數(shù)組概念:數(shù)目固定、類型相同的若干個(gè)變量的有序的集合。

(2)數(shù)組定義:(數(shù)組的大小在編譯的時(shí)候必須確定,在程序執(zhí)行過(guò)程中不能改變,所以不

能用變量說(shuō)明數(shù)組的大小。)

一維數(shù)組的定義:數(shù)組名[常量表達(dá)式];

二維數(shù)組的定義:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];

二維數(shù)組在內(nèi)存中的存儲(chǔ):按行存放。

a[0]a[O][0]^feTmx3]

a[l]a[]

a[2]a[2再⑵⑴再⑵⑵間21⑶

(3)數(shù)組的初始化:

初始化的數(shù)據(jù)個(gè)數(shù)不能超過(guò)定義的元素個(gè)數(shù)。

若是部分初始化,則余下來(lái)元素的值根據(jù)類型,整型默認(rèn)為0,字符型為空……

二維數(shù)組的初始化:可以省略第一維的大小。例:inta[][3]={1,23,4,5,6);

數(shù)組(除字符數(shù)組外)不能被整體輸入或整體輸出。

不可以給數(shù)組做整體的賦值,字符數(shù)組也不可以。

(3)一維數(shù)組作為函數(shù)的參數(shù):

若一維數(shù)組做函數(shù)的形參,則調(diào)用該函數(shù)時(shí),相應(yīng)的實(shí)參用數(shù)組名。傳遞給形參的是

實(shí)參數(shù)組所占內(nèi)存的起始位置值,這樣兩個(gè)數(shù)組就合用實(shí)參數(shù)組的內(nèi)存單元。

(4)字符數(shù)組:元素是字符的數(shù)組。注意:字符數(shù)組中可以存放字符串也可以存放單純的

字符,是否是字符串,關(guān)鍵看有沒(méi)有W。

字符數(shù)組初始化:

charsi[3]={七,H,T};chars2[4]={'c','a',T,'\0'};

chars2[]={"car”};〃字符串后自動(dòng)加'O'

chars2[]="car";//字符串后自動(dòng)加''0'

字符數(shù)組可以被整體輸入或輸出,例:chars[20];cin?s;cout?s?endl;

(5)常用字符串處理函數(shù):#include<string.h>

strlenstrcpystrcatstrcmpstrlwr

struprstrncmpstrncpystrstr

對(duì)常見(jiàn)的函數(shù)的理解和記憶從這幾個(gè)方面:函數(shù)功能、函數(shù)名、函數(shù)參數(shù)、函數(shù)返回

值、一兩個(gè)實(shí)例

5.編譯預(yù)處理

文件包含(include)、宏定義(#define)、條件編譯(#if.......)

使用系統(tǒng)庫(kù)函數(shù),要進(jìn)行對(duì)應(yīng)的文件包含(注意<>和“”兩者的區(qū)別)

在宏替換時(shí),只作替換,不作運(yùn)算(尤其是帶參宏進(jìn)行替換時(shí))

Forexample:

#include<iostream>

usingnamespacestd;

#defineT(x,y)(x)<(y)?(x):(y)

voidmain()

{cout?(10*T(2+4.l5))?endl:}T/gekey:5.

6.結(jié)構(gòu)體類型(struct)、共用體類型(union)>枚舉類型(enum)

(i)類型定義,系統(tǒng)對(duì)類型不會(huì)分配內(nèi)存單元,只會(huì)在用該類型定義某變量時(shí),給該變量

分配內(nèi)存單元。

(2)注意區(qū)別結(jié)構(gòu)體類型和共用體類型。結(jié)構(gòu)體類型的變量的存儲(chǔ)字節(jié)數(shù)為所有分量的存

儲(chǔ)字節(jié)的和值,共用體類型變量的存儲(chǔ)字節(jié)數(shù)為其所有分量中最長(zhǎng)分量的存儲(chǔ)字節(jié)數(shù)。

(3)枚舉類型中枚舉常量及對(duì)應(yīng)的整數(shù)值之間的關(guān)系,枚舉型變量的輸入和輸出。

7.指針

對(duì)于指針的理解:

@可以把內(nèi)存里的每一個(gè)存儲(chǔ)單元想像成是一個(gè)抽屜,這個(gè)抽屜是由若干個(gè)固定大小的單位

(字節(jié))組成,

?抽屜里可以放蘋(píng)果(double),桔子(int)、葡萄(char)等,抽屜有大有?。ㄒ?yàn)樘O(píng)果、桔

子、梨大小不一),具體多大,就看你想放什么

@每個(gè)抽屜都有一個(gè)鑰匙(指針),每個(gè)鑰匙有體積和性質(zhì)(兩個(gè)屬性。鑰匙的體積(值,

表現(xiàn)為地址編號(hào))都是一樣的,但性質(zhì)類型,表現(xiàn)為能開(kāi)多大的抽屜,以什么樣的方式開(kāi))

不同,不同的鑰匙以不同的方式開(kāi)不同的抽屜

@抽屜里可以放鑰匙,由于鑰匙的體積都是一樣的,所以,所有放鑰匙的抽屜大小肯定都是

一樣的,是4B

回到這里可以總結(jié)出來(lái),抽屜有兩種,放普通物品的和專門放鑰匙的。

@從倉(cāng)庫(kù)(內(nèi)存)拿出某個(gè)抽屜,給它起個(gè)名字用于放指定類型的東西(蘋(píng)果、桔子、葡萄、

鑰匙,都有可能),就是定義一個(gè)變量(inti);

@如果上述定義的時(shí)候,指定存放的東西是鑰匙,那就是定義一個(gè)指針變量(int*ip)(ip

是存放鑰匙的抽屜的名字)

@可以通過(guò)抽屜的名字知道該抽屜的鑰匙(&i,獲得的是i的指針)

@ip=&i表示把ip指向i,即,通過(guò)ip抽屜里的鑰匙可以去開(kāi)名字為i的抽屜

@注意,上一句話里只是描述了可以開(kāi),實(shí)際并沒(méi)有開(kāi),要想實(shí)際地去開(kāi),去取到i抽屜里

的東西或往i抽屜里放東西,需要用*ip,如*ip=10;表示把10放到i抽屜里。

對(duì)于指針運(yùn)算的理解:

@對(duì)于鑰匙(指針),可以具體想像成是從左往右4個(gè)數(shù)字(每個(gè)數(shù)字由1B表示)組成的密

碼鎖,不同的數(shù)字組合(指針的值)對(duì)應(yīng)為同類型(存放的東西類型相同)的不同(抽屜位

置不同)抽屜的鑰匙

回改變4個(gè)數(shù)字的組合,讓密碼鎖對(duì)應(yīng)到不同的抽屜,就是指針的運(yùn)算

@ip=ip+l,就是把ip變成緊靠其后的下一個(gè)同類型抽屜的鑰匙,變之前的抽屜和變之后的抽

屜位置是相鄰的??梢酝茝V到ip=ip+n;

@ip=ip-l,就是把ip變成緊靠其前的前一個(gè)同類型抽屜的鑰匙,變之前的抽屜和變之后的抽

屜位置是相鄰的??梢酝茝V到ip=ip-n;

@ip+n或ip-n呢?ip不變,只是相對(duì)說(shuō)明其后(前)的第n個(gè)抽屜的鑰匙

(1)其值為地址,其型為指針?biāo)复鎯?chǔ)單元占有的連續(xù)字節(jié)數(shù)(所指對(duì)象的數(shù)據(jù)類型)

(2)常量指針、變量指針、函數(shù)指針

(3)指針的定義、初始化、賦值、

inta,b,*p=&a,*q;q=&b;

不同類型的指針變量所占內(nèi)在單元大小相同,即sizeof(char*)、sizeof(int*)>

sizeof(float*).......的值相同,均為4

(4)通過(guò)指針訪問(wèn)變量:*p=100;

(5)指針的運(yùn)算:

算術(shù)運(yùn)算:p++、p--、++p、—p、p+i、p-i>p-q

關(guān)系運(yùn)算:p>q、p==q.......

*p++、*++p、(*p)++、*(p++)、++*p

(6)指針和數(shù)組:

#defineN100

#defineM10

?int*pl,*p2[N],(*p3)[N];注意三者的區(qū)別

?指針和一維數(shù)組:

inta[N],*p=a;

*(p+i)gp「]姬a[i]p+i^a+i^&afi]

p+0指向0號(hào)元素,p+N-1指向最后一個(gè)元素

?指針和二維數(shù)組:

inta[M][N],(*q)[N]=a;

a[i皿O*(q[i]+j)O*(*(q+i)+j)O(*(q+i))(j]0磯訕]

a+i0p+i

?看到形如*(指針+數(shù)值)就替換為指針[數(shù)值]

(7)二級(jí)指針:指針的指針,理解就行

(8)指向函數(shù)的指針:如float(*fp)(inta,charb);

(9)返回值為指針的函數(shù):字符串處理中常用到,拷貝、排序……

(10)new和delete(C++提供的運(yùn)算符)

type*p=newtype;type*p=newtype(value);type*p=newtype[size];

deletep;delete[]p;delete[size]p;

(11)引用:

定義引用時(shí)就必須初始化;引用類型和初始化的變量類型必須相同;定義好引用后不

可再修改引用的指向;不能給常數(shù)定義引用

(12)const修飾指針(或引用):

靠近誰(shuí)就const誰(shuí)

floatx,y;

constfloat*p=&x;〃*p=100錯(cuò),p=&y對(duì)

float*constq=&x;〃*q=100對(duì),q=&y錯(cuò)

constfloat*constr=&x;//*r=100錯(cuò),尸&y錯(cuò)

(13)鏈表:創(chuàng)建(頭節(jié)點(diǎn)插入、尾節(jié)點(diǎn)插入、有序插入)、讀取、刪除,在這些基本過(guò)程

中均涉及到如何從一個(gè)節(jié)點(diǎn)移動(dòng)到下一個(gè)節(jié)點(diǎn)。

8.類和對(duì)象(要注意區(qū)分兩者的概念)

(1)面向?qū)ο蟮奶攸c(diǎn):封裝、繼承、多態(tài)

(2)定義:

?以class開(kāi)頭,以分號(hào)結(jié)尾。類是數(shù)據(jù)類型,對(duì)象是變量,只是名字不同而已。

?數(shù)據(jù)成員和成員函數(shù)

?public>private、protected(區(qū)別)

(3)構(gòu)造函數(shù)

?主要用于初始化數(shù)據(jù)成員,創(chuàng)建對(duì)象時(shí)被調(diào)用,形如:類名(參數(shù)){……}

?無(wú)返回值,每個(gè)類都有,自己不定義則系統(tǒng)給一個(gè)默認(rèn)的,自己定義了系統(tǒng)就不給

默認(rèn)的。默認(rèn)的形如:類名(){}

?可以重載

?常值數(shù)據(jù)成員、對(duì)象成員、從基類繼承來(lái)的數(shù)據(jù)成員等特殊成員的初始化必須采用

初始化表。

?單參構(gòu)造函數(shù)可完成類型轉(zhuǎn)換功能。

?構(gòu)造函數(shù)的調(diào)用順序:

■規(guī)則一:對(duì)象的創(chuàng)建按定義的先后順序

■規(guī)則二:含對(duì)象成員的類,先對(duì)象成員(多個(gè)時(shí)按定義順序)后類自己

■規(guī)則三:先基類再派生類,有多個(gè)基類時(shí)按派生順序。

■規(guī)則四:有虛基類時(shí),按虛基類、基類、派生類的順序

?復(fù)制構(gòu)造函數(shù)(拷貝構(gòu)造函數(shù)):

在以下情況被調(diào)用

■一個(gè)對(duì)象以值傳的方式傳入函數(shù)體

■一個(gè)對(duì)■象以值傳的方式傳出函數(shù)體(return)

■一個(gè)對(duì)象需通過(guò)另一對(duì)象進(jìn)行初始化

(4)析構(gòu)函數(shù):

?對(duì)象生存期結(jié)束時(shí)由系統(tǒng)自動(dòng)調(diào)用,形如:~類名(){……}

?無(wú)返回值,每個(gè)類都有,不可以重載,可以定義為虛函數(shù)

?析構(gòu)函數(shù)的調(diào)用順序:與構(gòu)造函數(shù)相反

(5)內(nèi)聯(lián)成員函數(shù):默認(rèn)在類定義中實(shí)現(xiàn)的成員函數(shù)為內(nèi)聯(lián)的,要在類外對(duì)成員函數(shù)進(jìn)行

實(shí)現(xiàn),并定義為內(nèi)聯(lián)的函數(shù),需加關(guān)鍵字inline

(6)友元:分為友元函數(shù)和友元類,以破壞類的封裝性來(lái)?yè)Q取訪問(wèn)的效率。

友元函數(shù):不是類的成員函數(shù),加friend關(guān)鍵字,不帶this指針,但可以直接訪問(wèn)類中

的所有成員。

(7)靜態(tài)成員:靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù),沒(méi)有this指針

?靜態(tài)數(shù)據(jù)成員:所有的類對(duì)象共享靜態(tài)數(shù)據(jù)成員

?靜態(tài)成員函數(shù):只能直接訪問(wèn)該類的靜態(tài)數(shù)據(jù)成員,不能直接訪問(wèn)非靜態(tài)數(shù)據(jù)成員。

(8)const對(duì)象和const成員函數(shù):

?

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論