計(jì)算機(jī)網(wǎng)絡(luò)管理_第1頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)管理_第2頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)管理_第3頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)管理_第4頁(yè)
計(jì)算機(jī)網(wǎng)絡(luò)管理_第5頁(yè)
已閱讀5頁(yè),還剩118頁(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)介

計(jì)算機(jī)網(wǎng)絡(luò)管理第一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一本章將深入學(xué)習(xí)數(shù)組包括多維數(shù)組的知識(shí)和應(yīng)用,以及它們與指針的關(guān)系。

C++語(yǔ)言擁有在運(yùn)行時(shí)獲得變量地址和操縱地址的能力,這種可用來(lái)操縱地址的變量類(lèi)型就是指針。指針可以用于數(shù)組,用于內(nèi)存訪問(wèn),還可作為函數(shù)的參數(shù)。本章重點(diǎn)第二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/625.1.1數(shù)組、數(shù)組元素及其存儲(chǔ)方式

5.1.2數(shù)組名作為函數(shù)參數(shù)數(shù)組第三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/63數(shù)組的引入:

數(shù)組(array)是一種順序容器(sequencecontainer),是由單一類(lèi)型元素組成的一個(gè)有序集合:

intfibon[10]={0,1,1,2,3,5,8,13,21,34};

數(shù)組名為fibon,這是一個(gè)包含10個(gè)元素的整型一維(dimension)數(shù)組,其第一個(gè)元素為fibon[0],存放0,最后一個(gè)元素為fibon[9],存放34。數(shù)組第四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/64

0

1

2

3

21

34fibon[0]fibon[1]fibon[2]fibon[3]fibon[8]fibon[9]圖5.1

數(shù)組在內(nèi)存中的存儲(chǔ)數(shù)組元素的訪問(wèn)方式:通過(guò)下標(biāo)操作符(subscript),按元素在數(shù)組中的位置進(jìn)行訪問(wèn),稱(chēng)為索引訪問(wèn)(indexing)或下標(biāo)訪問(wèn)(subscripting)。參見(jiàn)圖5.1

。數(shù)組與數(shù)組元素及其存儲(chǔ)方式第五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/65注意:

1:數(shù)組是一種組合類(lèi)型,是不能作為一個(gè)整體進(jìn)行訪問(wèn)和處理的,只能按元素進(jìn)行個(gè)別的訪問(wèn)和處理。

2:

C++數(shù)組第一個(gè)元素的下標(biāo)為0,而不是1,且下標(biāo)表達(dá)方式是固定的。

3:數(shù)組元素在內(nèi)存中是從低地址開(kāi)始順序排列,各元素的存儲(chǔ)單元占用內(nèi)存大小相同,各元素的存儲(chǔ)單元之間沒(méi)有空隙,可以從數(shù)組第一個(gè)元素存儲(chǔ)單元的起始地址計(jì)算出任意一個(gè)元素存儲(chǔ)單元的起始地址。數(shù)組與數(shù)組元素及其存儲(chǔ)方式第六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/66【例5.1】找最大數(shù)和最小數(shù)

const

intSIZE=15;

intmain(){

intarr[SIZE],i,high,low;

for(i=0;i<SIZE;i++)arr[i]=rand()%100;cout<<"Herearethe"<<SIZE<<"randomnumbers:"<<endl;

for(i=0;i<SIZE;i++)cout<<arr[i]<<'\t';

cout<<endl;high=arr[0];//初始化時(shí)最大和最小值均為數(shù)組首元素

low=arr[0];

for(i=1;i<SIZE;i++){if(arr[i]>high)high=arr[i];

if(arr[i]<low)low=arr[i];}cout<<"highestvalueis"<<high<<endl;cout<<"lowestvalueis"<<low<<endl;

return0;}第七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/67結(jié)構(gòu)數(shù)組定義:

structkeyword{

charword[16];//關(guān)鍵字

intcount;//該關(guān)鍵字將在源程序中出現(xiàn)的次數(shù)};初始化:結(jié)構(gòu)數(shù)組初始化時(shí)可以用括號(hào)來(lái)區(qū)分每一個(gè)結(jié)構(gòu),例如:keywordkeytab[]={{"auto",0},{"break",0},{"case",0},……};當(dāng)提供了數(shù)組中所有結(jié)構(gòu)值時(shí),不必用這種括號(hào)的形式。keywordkeytab[]={"auto",0,"break",0,"case",0,"char",0,……"unsigned",0,"volatile",0,"while",0,};數(shù)組與數(shù)組元素及其存儲(chǔ)方式第八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/68對(duì)象數(shù)組定義:

CGoodsgoods[3];該商品類(lèi)對(duì)象數(shù)組包含3個(gè)商品對(duì)象數(shù)組元素,系統(tǒng)調(diào)用3次默認(rèn)的構(gòu)造函數(shù)來(lái)建立這3個(gè)商品對(duì)象數(shù)組元素。初始化:應(yīng)該完整書(shū)寫(xiě)各個(gè)元素的構(gòu)造函數(shù)及成員數(shù)據(jù)初值:CGoodsgoods[3]={CGoods("夏利2000",30,98000.0),

//調(diào)用三參數(shù)構(gòu)造函數(shù),初始化goods[0]CGoods("桑塔納2000",164000.0),

//調(diào)用兩參數(shù)構(gòu)造函數(shù),初始化goods[1]CGoods()//調(diào)用默認(rèn)的構(gòu)造函數(shù),初始化goods[2]};數(shù)組與數(shù)組元素及其存儲(chǔ)方式第九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/69數(shù)組作為參數(shù):

數(shù)組可以作為函數(shù)的參數(shù)。在函數(shù)調(diào)用時(shí)傳遞實(shí)參數(shù)組的首地址,所以在被調(diào)函數(shù)中對(duì)形參數(shù)組的處理實(shí)際就是對(duì)調(diào)用函數(shù)的實(shí)參數(shù)組的處理。

C++只傳遞數(shù)組首地址,而對(duì)數(shù)組邊界不加檢查。這帶來(lái)的好處是,函數(shù)對(duì)長(zhǎng)度不等的同類(lèi)數(shù)組都通用。如要指定長(zhǎng)度可以設(shè)定另一個(gè)參數(shù)來(lái)傳遞數(shù)組元素的個(gè)數(shù)。數(shù)組名作為函數(shù)參數(shù)第十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/610數(shù)組名作為函數(shù)參數(shù)數(shù)組元素作實(shí)參,與單個(gè)變量一樣。數(shù)組名作參數(shù),形、實(shí)參數(shù)都應(yīng)是數(shù)組名,類(lèi)型要一樣,傳送的是數(shù)組首地址。對(duì)形參數(shù)組的改變會(huì)直接影響到實(shí)參數(shù)組。第十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/611【例5.2】字符數(shù)組與字符數(shù)組相連接voidstrcat(chars[],charct[]){

inti=0,j=0;

while(s[i]!=0)i++;

while(ct[j]!=0)s[i++]=ct[j++];s[i]='\0';}voidmain(

){

chara[40]="李明";

charb[20]=“是華中科技大學(xué)學(xué)生";strcat(a,b);cout<<a<<endl;//打印字符數(shù)組a}第十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/612多維數(shù)組

C++中數(shù)組可以嵌套,就是多維數(shù)組。定義二維數(shù)組的通用格式為:

類(lèi)型說(shuō)明符數(shù)組名[常量行表達(dá)式][常量列表達(dá)式];行與列用常量表達(dá)式表示。第十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/613二維數(shù)組:一維數(shù)組可對(duì)應(yīng)數(shù)學(xué)中的向量,而二維數(shù)組可對(duì)應(yīng)矩陣,可用一個(gè)二維數(shù)組存儲(chǔ)矩陣。

多維數(shù)組存儲(chǔ)與訪問(wèn)方式119753117131175312108642二維數(shù)組的橫向稱(chēng)為行,縱向稱(chēng)為列,上面這個(gè)數(shù)組為三行六列。第十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/614多維數(shù)組存儲(chǔ)與訪問(wèn)方式二維數(shù)組分析:上面的數(shù)組可定義為:intmat[3][6];mat[0][0]mat[0][1]mat[0][2]mat[0][3]mat[0][4]mat[0][5]mat[1][0]mat[1][1]mat[1][2]mat[1][3]mat[1][4]mat[1][5]mat[2][0]mat[2][1]mat[2][2]mat[2][3]mat[2][4]mat[2][5]有了確定的關(guān)系后可以算出多維數(shù)組任一元素在內(nèi)存的位置,設(shè)有a數(shù)組m行n列,每個(gè)元素占b個(gè)字節(jié),a[i][j]的首地址為:數(shù)組的首地址+(i*n+j)*b;第十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/615多維數(shù)組存儲(chǔ)與訪問(wèn)方式

圖5.36*3*4的三維數(shù)組多維數(shù)組分析:

C/C++中的多維數(shù)組基本的定義是以數(shù)組作為元素構(gòu)成的數(shù)組,二維數(shù)組的數(shù)組元素是一維數(shù)組,三維數(shù)組的數(shù)組元素是一個(gè)二維數(shù)組,依此類(lèi)推。也就是說(shuō),多維數(shù)組用的是一個(gè)嵌套的定義。圖5.3表示一個(gè)三維數(shù)組可定義為:inta3d[6][3][4];第十六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/616多維數(shù)組存儲(chǔ)與訪問(wèn)方式多維數(shù)組的數(shù)組名:代表數(shù)組中第一維(最高維)第一個(gè)元素(0號(hào)元素)在內(nèi)存中的首地址,如三維數(shù)組的數(shù)組名代表的是組成三維數(shù)組的第一個(gè)二維數(shù)組的存儲(chǔ)首地址。當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí),多維數(shù)組同樣是作為第一維第一個(gè)數(shù)組的首地址傳遞給函數(shù),所以物理上是傳地址。在函數(shù)中對(duì)形參的數(shù)組元素的修改實(shí)際上是對(duì)作為實(shí)參的原數(shù)組的元素進(jìn)行修改。第十七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/617多維數(shù)組存儲(chǔ)與訪問(wèn)方式初始化:將所有數(shù)據(jù)寫(xiě)在一個(gè){}內(nèi),按順序賦值例如:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};分行給二維數(shù)組賦初值例如:staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};可以對(duì)部分元素賦初值例如:staticinta[3][4]={{1},{0,6},{0,0,11}};第十八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/618多維數(shù)組存儲(chǔ)與訪問(wèn)方式1416192589101571212182024741361091013141567511109878129412231516691153152619221445321821171693211191713117530076543210圖5.4極點(diǎn)與鞍點(diǎn)示意圖【例5.4】已知矩陣

intmat[8][8],找出其中的極點(diǎn)與鞍點(diǎn)。如某元素在所在行相鄰點(diǎn)中與所在列相鄰點(diǎn)中均為最大或最小,則為極點(diǎn);如某元素在所在行(或列)相鄰點(diǎn)中為最大,同時(shí)該元素在所在列(或行)相鄰點(diǎn)中為最小,則為鞍點(diǎn)。第十九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/619【例5.4】矩陣極點(diǎn)與鞍點(diǎn)

#include<iostream>#include<iomanip>usingnamespacestd;intmat[8][8]={0,3,5,7,11,┅,25,19,16,14};

intmaxmin(inta,intb,intc){//判斷相鄰3元素中間元素是否最大或最小

if(a>b&&b<c)return-1;

else

if(a<b&&b>c)return1;

else

return0;}//b為最大返回1,最小返-1,其他為0第二十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/620intmain(

){

inti,j,k,l;

for(i=1;i<=6;i++)

for(j=1;j<=6;j++){

k=maxmin(mat[i][j-1],mat[i][j],mat[i][j+1]);

if(k==0)continue;l=maxmin(mat[i-1][j],mat[i][j],mat[i+1][j]);

if(l==0)continue;

if(k==1&&l==1)cout<<"極大點(diǎn):";

elseif(k==-1&&l==-1)cout<<"極小點(diǎn):";

elsecout<<“鞍點(diǎn):”;cout<<setw(2)<<mat[i][j]<<";i="<<i<<";j="<<j<<endl;}

return0;}【例5.4】矩陣極點(diǎn)與鞍點(diǎn)第二十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/621舉例:使用數(shù)組名作為函數(shù)參數(shù)主函數(shù)中初始化一個(gè)矩陣并將每個(gè)元素都輸出,然后調(diào)用子函數(shù),分別計(jì)算每一行的元素之和,將和直接存放在每行的第一個(gè)元素中,返回主函數(shù)之后輸出各行元素的和。第二十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/622#include<iostream>usingnamespacestd;voidRowSum(intA[][4],intnrow){ intsum; for(inti=0;i<nrow;i++) { sum=0;

for(intj=0;j<4;j++)

sum+=A[i][j]; cout<<"Sumofrow"

<<i<<"is“

<<sum

<<endl;A[i][0]=sum; }

}voidmain(void){ intTable[3][4]={{1,2,3,4},{2,3,4,5},

{3,4,5,6}}; for(inti=0;i<3;i++) { for(intj=0;j<4;j++) cout<<Table[i][j]

<<"";

cout<<endl; } RowSum(Table,3);

for(inti=0;i<3;i++)

cout<<Table[i][0]<<““;}運(yùn)行結(jié)果:123423453456Sumofrow0is10Sumofrow1is14Sumofrow2is18101418第二十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/623多維數(shù)組作為函數(shù)參數(shù)多維數(shù)組作為參數(shù):在作為函數(shù)的形式參數(shù)時(shí),可以省略最高維(第一維)。因?yàn)榫幾g器只要根據(jù)后面每一維(從第二維開(kāi)始)的大小,就可計(jì)算數(shù)組每一個(gè)元素的存儲(chǔ)位置。基于同樣的理由,也只能省略最高維。進(jìn)一步考慮,對(duì)多維數(shù)組,編譯器不檢查邊界,其實(shí)只是不檢查最高維(第一維)的邊界,較低各維的大小是在控制之中的。復(fù)合類(lèi)型只能對(duì)各元素逐個(gè)操作,不能整體操作。

第二十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/624多維數(shù)組作為函數(shù)參數(shù)【例5.5】矩陣轉(zhuǎn)置與矩陣相乘。下標(biāo)作為參數(shù)傳遞。第二十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/625【例5.5】矩陣轉(zhuǎn)置與矩陣相乘voidinverse(int[3][6],int[6][3]);//轉(zhuǎn)置矩陣

voidmulti(int[6][3],int[3][4],int[6][4]);//矩陣乘法voidoutput(int[6][4]);//矩陣輸出Intmain(){

intmiddle[6][3],result[6][4];

intmatrix1[3][6]={8,10,12,23,1,3,5,7,9,2,4,6, 34,45,56,2,4,6};

intmatrix2[3][4]={3,2,1,0,-1,-2,9,8,7,6,5,4};inverse(matrix1,middle);multi(middle,matrix2,result);output(result);

return0;}第二十六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/626【例5.5】矩陣轉(zhuǎn)置與矩陣相乘voidinverse(intmatrix1[3][6],intmiddle[6][3]){//轉(zhuǎn)置矩陣

inti,j;

for(i=0;i<3;i++)

for(j=0;j<6;j++)

middle[j][i]=matrix1[i][j];

return;}voidmulti(intmiddle[6][3],intmatrix2[3][4],intresult[6][4]){

inti,j,k;

//矩陣乘法

for(i=0;i<6;i++){

for(j=0;j<4;j++){

result[i][j]=0;

for(k=0;k<3;k++)result[i][j]+=middle[i][k]*matrix2[k][j];}}

return;}第二十七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/627【例5.5】矩陣轉(zhuǎn)置與矩陣相乘voidoutput(intresult[6][4]){//矩陣輸出

cout<<"result"<<'\n';intI,j;

for(i=0;i<6;i++){

for(j=0;j<4;j++)cout<<setw(4)<<result[i][j]<<"";cout<<'\n';}

return;}第二十八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/628指針與地址

5.3.1指針的概念5.3.2指針變量的賦值、初始化與簡(jiǎn)單應(yīng)用第二十九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/629引例尋找保險(xiǎn)箱密碼

一個(gè)關(guān)于特工007尋找保險(xiǎn)箱密碼的故事…關(guān)鍵點(diǎn)分析得到線索:0200單元的“東九號(hào)”寄存箱提示地址:1900單元找到目標(biāo):“啟明號(hào)”寄存箱取出內(nèi)容:911第三十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/630尋找密碼的途徑分析密碼911存放在某個(gè)寄存箱內(nèi),如果我們知道這個(gè)寄存箱的名字,就能夠找到密碼;如果不知道密碼所在的寄存箱名字,知道該寄存箱的地址也照樣能夠取出密碼;如果寄存箱的地址也不知道,但是有另外一個(gè)地方存放這個(gè)寄存箱的地址,就能順藤摸瓜,間接找到密碼。第三十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/631密碼存放示意圖啟明號(hào)9111900東九號(hào)19000200名字東九號(hào)啟明號(hào)地址02001900內(nèi)容1900911第三十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/632利用指針模擬尋找保險(xiǎn)箱密碼的過(guò)程

獲取密碼的兩種方法

intmain(){ intkey=911;/*變量key存放密碼*/

int*addr=NULL;/*變量addr存放地址*/

addr=&key;/*將key的地址賦給addr*/ /*通過(guò)變量key輸出密碼值*/cout<<“密碼:“<<key;/*通過(guò)變量key的地址來(lái)輸出密碼值*/ cout<<“如果我知道存放密碼的地址,我也能找到密碼:",*addr;

return0;}密碼:911如果我知道存放密碼的地址,我也能找到密碼:911第三十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/633指針的概念

指針與間接訪問(wèn):

按變量的地址直接存取變量的方法稱(chēng)為“直接訪問(wèn)”方式。存貯變量的內(nèi)存空間的首地址稱(chēng)為該變量的地址。如果將一個(gè)變量的地址放在另一個(gè)變量中,則存放地址的變量稱(chēng)為指針(Pointer)型變量。這樣存取變量,也可以間接的由指針變量取得該變量的地址進(jìn)行,稱(chēng)為“間接訪問(wèn)”方式。

由于指針變量中的值是另一個(gè)變量的地址,習(xí)慣上形象地稱(chēng)為指針變量指向該變量。指針變量中的值也簡(jiǎn)稱(chēng)為指針,所以指針就是地址。第三十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/634指針變量與間址訪問(wèn)

指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;第三十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/635指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;第三十六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/636指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;

int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE0第三十七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/637指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE0第三十八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/638指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta

0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF4第三十九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/639指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta

0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF4*p1*p1指針p1所指的對(duì)象第四十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/640指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb

0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;

p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF0*p1第四十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/641指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb

0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;

p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF4*p1*p2*p2指針p2所指的對(duì)象0X0066FDF0第四十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/642指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10; //*p1=10b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF010*p1*p2第四十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/643指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20; //*p2=20a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF010*p1*p220第四十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/644指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;

a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF010*p1*p220+第四十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/645指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;

a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF030*p1*p220+第四十六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/646指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF030*p1*p220間址訪問(wèn)讀出變量p1的地址值查找該地址的存儲(chǔ)單元用關(guān)聯(lián)類(lèi)型解釋并讀出數(shù)據(jù)第四十七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/647指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF030*p1*p220間址訪問(wèn)讀出變量p2的地址值查找該地址的存儲(chǔ)單元用關(guān)聯(lián)類(lèi)型解釋并讀出數(shù)據(jù)第四十八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/648指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF030*p1*p220間址運(yùn)算(指針運(yùn)算)第四十九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/649指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0例如:

inta,b;int*p1,*p2;p1=&a;p2=&b;a=10;b=20;a=*p1+*p2;int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF030*p1*p220指針類(lèi)型說(shuō)明第五十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/650

指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”inta0X0066FDF4intb0X0066FDF0int*p20X0066FDE4int*p10X0066FDE00X0066FDF40X0066FDF030*p1*p220int*p1int*p2intaintb*p1*p2第五十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/651定義形式:

類(lèi)型*標(biāo)識(shí)符;指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”第五十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/652指針變量名定義形式:

類(lèi)型*標(biāo)識(shí)符;指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”指針類(lèi)型說(shuō)明符指針?biāo)笇?duì)象的類(lèi)型(指針的關(guān)聯(lián))第五十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/653例如int*iptr;//iptr是指向整型對(duì)象的指針,可以存放一個(gè)整型變量的地址

char*s; //s是指向字符對(duì)象的指針double*dPtr; //dPtr是指向浮點(diǎn)對(duì)象的指針定義形式:

類(lèi)型*標(biāo)識(shí)符;指針變量與間址訪問(wèn)指針類(lèi)型變量——能夠存放對(duì)象地址的變量,簡(jiǎn)稱(chēng)“指針變量”第五十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/654注意事項(xiàng)用變量地址作為初值時(shí),該變量必須在指針初始化之前已說(shuō)明過(guò),且變量類(lèi)型應(yīng)與指針類(lèi)型一致。可以用一個(gè)已賦初值的指針去初始化另一個(gè)指針變量。指針變量與間址訪問(wèn)指針變量的初始化第五十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/655指針名=地址“地址”中存放的數(shù)據(jù)類(lèi)型與指針類(lèi)型必須相符。向指針變量賦的值必須是地址常量或變量,不能是普通整數(shù)。但可以賦值為整數(shù)0,表示空指針。指針的類(lèi)型是它所指向變量的類(lèi)型,而不是指針本身數(shù)據(jù)值的類(lèi)型,任何一個(gè)指針本身的數(shù)據(jù)值都是unsignedlongint型。允許聲明指向void類(lèi)型的指針。該指針可以被賦予任何類(lèi)型對(duì)象的地址。例:void*general;指針變量與間址訪問(wèn)第五十六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/656指針賦值//空指針:int*iPtr=0;char*s=NULL;double*dPtr=NULL;iPtrsdPtr指針變量與間址訪問(wèn)第五十七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/657指針賦值inti=1;int*iPtr1,*iPtr2;char*cPtr;…iPtr1=&i; //合法iPtr2=iPtr1; //合法iPtr2=i;

//非法,i不是int*

對(duì)象cPtr=iPtr1;

//非法,iPtr1不是char*對(duì)象i=iPtr1; //非法,iPtr1不是int對(duì)象指針變量與間址訪問(wèn)第五十八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/658舉例指針的聲明、賦值與使用#include<iostream>usingnamespacestd;voidmain(){ int*i_pointer; //聲明int型指針i_pointer inti; //聲明int型數(shù)i i_pointer=&i;//取i的地址賦給i_pointer i=10; //int型數(shù)賦初值 cout<<"Outputinti="<<i<<endl;//輸出int型數(shù)的值 cout<<"Outputintpointeri="<<*i_pointer<<endl;}//輸出int型指針?biāo)傅刂返膬?nèi)容程序運(yùn)行的結(jié)果是:Outputinti=10Outputintpointeri=10第五十九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/659&

取地址操作 *

間址訪問(wèn)操作

例如

shortinta=3,b=4; floatc=4.5,d=8.6; chare='x',f='y';

int*pa=&a,*pb=&b; float*pc=&c,*pd=&d; char*pe=&e,*pf=&f;abcdef101010121014101810221023344.58.6xy指針變量與間址訪問(wèn)第六十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/660abcdef101010121014101810221023344.58.6xypapbpcpdpepf20022006`20102014201820222026101010121014101810221023&a3paa,*pa&b4pbb,*pb&c4.5pcc,*pc&d8.6pdd,*pd&expee,*pe&fypff,*pf第六十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/661//例間址訪問(wèn)對(duì)象voidmain(){inti,*p;

p=&i;*p=5;cout<<i<<endl;cout<<*p<<endl;cout<<p<<endl;cout<<&i<<endl;}//通過(guò)指針變量間指訪問(wèn)對(duì)象用名訪問(wèn)對(duì)象通過(guò)指針變量間址訪問(wèn)對(duì)象指針變量的值對(duì)象i的地址取對(duì)象i的直接地址值第六十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/662//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pinti1=10,i2=20,*p1,*p2,*p;第六十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/663//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pp1=&i1;p2=&i2;*p1*p2第六十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/664//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pcout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;*p1*p2Output*p1=10 *p2=20第六十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/665//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pp=p1;*p1*p2*pOutput*p1=10 *p2=20第六十六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/666//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pp1=p2;*p2*pOutput*p1=10 *p2=20第六十七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/667//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pp1=p2;*p1*p*p2Output*p1=10 *p2=20第六十八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/668//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pp2=p;*p1*p*p2Output*p1=10 *p2=20第六十九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/669//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pp2=p;*p1*pOutput

*p1=10 *p2=20第七十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/670//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

pp2=p;*p1*p*p2Output

*p1=10 *p2=20第七十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/671//例交換指針值voidmain(){inti1=10,i2=20,*p1,*p2,*p;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;p=p1;p1=p2;p2=p;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

p*p1*p*p2cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;*p1=20 *p2=10Output

*p1=10 *p2=20第七十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/672//例交換指針?biāo)笇?duì)象的值#include<iostream.h>voidmain(){inti1=10,i2=20,i,*p1,*p2;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;i=*p1;*p1=*p2;*p2=i;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2

iinti1=10,i2=20,i,*p1,*p2;第七十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/673//例交換指針?biāo)笇?duì)象的值voidmain(){inti1=10,i2=20,i,*p1,*p2;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;i=*p1;*p1=*p2;*p2=i;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2p1=&i1;p2=&i2;*p1*p2

i第七十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/674//例交換指針?biāo)笇?duì)象的值voidmain(){inti1=10,i2=20,i,*p1,*p2;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;i=*p1;*p1=*p2;*p2=i;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;*p1*p2

iOutput*p1=10 *p2=20第七十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/675//例交換指針?biāo)笇?duì)象的值voidmain(){inti1=10,i2=20,i,*p1,*p2;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;i=*p1;*p1=*p2;*p2=i;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2i=*p1;*p1*p2

i10Output*p1=10 *p2=20第七十六頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/676//例交換指針?biāo)笇?duì)象的值voidmain(){inti1=10,i2=20,i,*p1,*p2;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;i=*p1;*p1=*p2;*p2=i;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

10i1

p2

20i2*p1=*p2;*p1*p210i

20Output*p1=10 *p2=20第七十七頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/677//例交換指針?biāo)笇?duì)象的值voidmain(){inti1=10,i2=20,i,*p1,*p2;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;i=*p1;*p1=*p2;*p2=i;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

20i1

p2

20i2*p2=i;10i*p1*p2

10Output*p1=10 *p2=20第七十八頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/678//例交換指針?biāo)笇?duì)象的值voidmain(){inti1=10,i2=20,i,*p1,*p2;p1=&i1;p2=&i2;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;i=*p1;*p1=*p2;*p2=i;cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;}

p1

20i1

p2

10i2cout<<"*p1="<<*p1<<'\t'<<"*p2="<<*p2<<endl;*p1=20 *p2=1010i*p1*p2Output*p1=10 *p2=20第七十九頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/679【例5.6】指針變量的賦值20age218age1p_age#include<iostream>

usingnamespacestd;

intmain(){

intage1=18,age2=20,*p_age;p_age=&age1;//情況1

cout<<"age1的地址是:"<<p_age<<endl;//0012FF7Ccout<<"ageofwangpingis"<<*p_age<<endl;p_age=&age2;//情況2

cout<<"age1的地址是:"<<p_age<<endl;//0012FF78cout<<"ageofzhanglingis"<<*p_age<<endl;return0;}第八十頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/680指針變量的賦值、初始化與簡(jiǎn)單應(yīng)用指針常量:指針常量是固定指向一個(gè)對(duì)象的指針,即指針本身是常量:charch=’a’,ch1=’x’;char*constptr=&ch;//注意const放在類(lèi)型說(shuō)明之后,變量名之前*ptr=’b’;//正確ptr=&ch1;//錯(cuò)誤ptr本身在初始化時(shí)所指向的地址是不可改變的,但它指向的目標(biāo)ch的值是可以改變的。第八十一頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/681指針變量的賦值、初始化與簡(jiǎn)單應(yīng)用常量指針:常量指針是指向“常量”的指針,即指針本身可以改指向別的對(duì)象,但不能通過(guò)該指針修改對(duì)象,該對(duì)象可以通過(guò)其他方式修改,常用于函數(shù)的參數(shù),以免誤改了實(shí)參。類(lèi)似于在“運(yùn)算符重載”一節(jié)中引用參數(shù)前加const。charch=’a’,ch1=’x’;constchar*ptr1=&ch;//ptr1是常量指針*ptr1=’b’;//錯(cuò)誤,只能做ch=’b’ptr1=&ch1;//正確第八十二頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/682this指針

問(wèn):當(dāng)在對(duì)象的外部訪問(wèn)該對(duì)象的公有成員時(shí),必須指明是哪一個(gè)對(duì)象。但是當(dāng)我們用對(duì)象的成員函數(shù)來(lái)訪問(wèn)本對(duì)象的成員時(shí),在成員函數(shù)中只要給出成員名就可以實(shí)現(xiàn)對(duì)該對(duì)象成員的訪問(wèn)。再進(jìn)一步可用同一個(gè)類(lèi)創(chuàng)建很多個(gè)對(duì)象,但它們共用同一份成員函數(shù)的代碼。既然是同一份代碼,那么成員函數(shù)又怎么知道是取哪一個(gè)對(duì)象的成員數(shù)據(jù)呢?答:

當(dāng)調(diào)用一個(gè)成員函數(shù)時(shí),系統(tǒng)自動(dòng)產(chǎn)生一個(gè)隱藏的指針,這個(gè)指針?lè)Q為this指針,它始終指向產(chǎn)生這個(gè)調(diào)用的對(duì)象,并將該指針作為一個(gè)參數(shù)自動(dòng)傳遞給該成員函數(shù)。這就是說(shuō),成員操作符總是要使用的,只不過(guò)在對(duì)象內(nèi)是隱式的,而在對(duì)象外是顯式的。即在對(duì)象內(nèi)省略了this指針。第八十三頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/683this指針this指針的實(shí)現(xiàn):

1.改變類(lèi)成員函數(shù)的定義,用附加參數(shù)this指針來(lái)定義每個(gè)成員函數(shù)。如:voidCgoods::RegisterGoods(Cgoods*this,char*nam,

intamount,floatprice){strcpy(this->Name,name);this->Amount=amount;

this->price=price;}

2.每個(gè)類(lèi)成員函數(shù)的調(diào)用,加上一個(gè)附加的實(shí)參——被調(diào)用對(duì)象的地址。如:Car1.RegisterGoods(String,number,pr);改變?yōu)椋篟egisterGoods(&Car1,String,number,pr);第八十四頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/684this指針this指針的使用:通常this指針不必寫(xiě)成顯式的,但是有時(shí)必須寫(xiě)成顯式的,如在對(duì)復(fù)數(shù)類(lèi)的賦值號(hào)重載中需要返回當(dāng)前調(diào)用的對(duì)象時(shí):Complex&Complex::operator=(Complex&c){real=c.real;image=c.image;

return*this;}Complex&Complex::operator+=(Complex&com){real+=com.real;image+=com.image;

return*this;}

靜態(tài)成員函數(shù)沒(méi)有this指針。因?yàn)槠胀ǔ蓡T函數(shù)雖然在物理上只有一份代碼,但在邏輯上都認(rèn)為一個(gè)對(duì)象有一份代碼,所以有this指針,而靜態(tài)成員函數(shù)在邏輯上也只有一份代碼,不屬于具體的對(duì)象,當(dāng)然沒(méi)有this指針第八十五頁(yè),共一百二十三頁(yè),編輯于2023年,星期一2023/6/685數(shù)組與指針的關(guān)系

5.5.1數(shù)組名、指針和指針運(yùn)算

5.5.

溫馨提示

  • 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)論