C++教學(二十一):指標陣列 - 痞客邦

文章推薦指數: 80 %
投票人數:10人

C++教學(二十一):指標陣列. 指標即然也是變數的一種,有時為了集合資料與處理上的方便,我們也可以使用陣列的方式來管理指標變數,宣告指標陣列的方式 ... 關閉廣告 做個有趣的人 跳到主文 莫忘初衷 部落格全站分類:職場甘苦 相簿 部落格 留言 名片 Mar07Mon201123:35 C++教學(二十一):指標陣列 C++教學(二十一):指標陣列 指標即然也是變數的一種,有時為了集合資料與處理上的方便,我們也可以使用陣列的方式來管理指標變數,宣告指標陣列的方式與宣告變數是類似的,例如:代碼:int*ptr[10];上面這段程式宣告一個指標陣列ptr,它擁有10個元素,當中的每個元素都可以儲存整數型態變數的記憶體位址,同樣也是使用索引來指定儲存至哪一個元素,例如:代碼:#includeiostreamusingnamespacestd;intmain(){int*ptr[5];intvar1=10,var2=20,var3=30,var4=40,var5=50;ptr[0]=&var1;ptr[1]=&var2;ptr[2]=&var3;ptr[3]=&var4;ptr[4]=&var5;for(inti=0;i5;i++)cout*ptr[i]=*ptr;return0;}執行結果:代碼:*ptr[0]=10*ptr[1]=20*ptr[2]=30*ptr[3]=40*ptr[4]=50上面這個程式是指標陣列的一個簡單應用,接下來我們介紹一個實務點的應用:二維陣列的動態記憶體配置方式。

這與之前介紹過的二維陣列動態宣告版本不同,這個版本中,我們可以直接使用[]運算子來指定索引值。

首先我們必須知道在二維陣列中,陣列名稱表示陣列的第一個元素記憶體位置,而第一個索引與第二個索引各有其意義,假設有個陣列是宣告作:代碼:intarr[5][10]={0};則第一個索引的意義就是:代碼:*(arr+i)==&arr[0];而第二個索引的意義就是:代碼:*(arr+i)+j=&arr[j]所以我們要使用指標的概念來取出陣列指定索引值就是:代碼:*(*(arr+i)+j)=arr[j]所以簡單的來說,二維陣列的名稱具有雙重指標的性質,下面的程式可以印證以上的說法:代碼:#includeiostreamusingnamespacestd;intmain(){intarr[2][5]={10,20,30,40,50,60,70,80,90,100};for(inti=0;i2;i++){for(intj=0;j5;j++){coutarr[i][j]=*(*(arr+i)+j) ;}cout;}return0;}執行結果:代碼:arr[0][0]=10arr[0][1]=20arr[0][2]=30arr[0][3]=40arr[0][4]=50arr[1][0]=60arr[1][1]=70arr[1][2]=80arr[1][3]=90arr[1][4]=100以上的程式只是用以說明二維陣列與記憶體位址的關係,當然我們不會無聊到使用指標的方式來存取一個一般的陣列,然而我們在動態二維陣列宣告時,就必須使用到這個觀念了,我們的動態二維陣列宣告示範程式如下所示,我們宣告雙重指標以動態配置二維陣列:代碼:#includeiostreamusingnamespacestd;intmain(){intm,n;inti,j;int**ptr;cout輸入Array維度:;cinmn;ptr=newint*[m];for(i=0;im;i++)*(ptr+i)=newint[n];for(i=0;im;i++)for(j=0;jn;j++)ptr[j]=i+j;for(i=0;im;i++){for(j=0;jn;j++)coutptr[j] ;cout;}for(i=0;im;i++)delete[](*(ptr+i));delete[]ptr;return0;}執行結果:代碼:輸入Array維度:5401231234234534564567使用new的方式來配置陣列,最後別忘了使用delete將空間還給記憶體。

全站熱搜 創作者介紹 天才R 做個有趣的人 天才R發表在痞客邦留言(0)人氣() E-mail轉寄 全站分類:不設分類個人分類:C++此分類上一篇:C++教學(十七):指標的運算 此分類下一篇:C++教學(三):變數與常數 上一篇:C++教學(十七):指標的運算 下一篇:C++教學(三):變數與常數 歷史上的今天 2011:C++教學(十七):指標的運算 2010:3/5~6埔里 2010:Lenka-TroubleIsAFriend ▲top 留言列表 發表留言 熱門文章 最新文章 文章分類 育兒甘苦談(2)一直記(5)ChildrenSong(1)一直學(29)C++(32)單純的女孩-貝貝(13)暨南鄉村大學(41)未分類(6)一直很認真的華仔(28)進步(30)只想單純投著球的王(26)閱讀閱讀(27)帶來夢想的五月天(30)電影電影(37)大人物(9)新兵瑞(18)好聽的中文歌(56)好聽的英文歌(113)夢(13)每一天(344)別人說(76)我說(50)英文歌詞(18)Q(13)好文章(18)未分類文章(344) 最新留言 誰來我家 參觀人氣 本日人氣: 累積人氣: 文章搜尋 回到頁首 回到主文 免費註冊 客服中心 痞客邦首頁 ©2003-2022PIXNET 關閉視窗



請為這篇文章評分?