C++教學(二十一):指標陣列 - 痞客邦
文章推薦指數: 80 %
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
關閉視窗
延伸文章資訊
- 1指標與陣列
Part 1 C 程式語言篇. 32. 指標其實就是一位址。陣列的名稱,表示此陣列第一個元素的位址,所. 以它也是指標。由此可知,指標與陣列的關係是很密切的。為了與指標.
- 2【Day 26】指標介紹(下) - iT 邦幫忙::一起幫忙解決難題
C 語言的簡單入門系列第26 篇 ... 首先,我們先宣告一個指標變數 p 以及長度為10 並已經存放數值的陣列 ... 輸出陣列指標中所存放位址的值.
- 3[C語言]指標、陣列與結構 - HackMD
相較於 基本型別 int, double,C語言還有 衍伸資料型別(Derived datatype) 。 其中很常被應用的,就是 指標(pointer) 、 陣列(Array) 、 結構(st...
- 4陳煥宗教受程式設計1-指標.pdf
指標(pointer) 是C 語言裡面非常重要的用 ... 指標變數專門用來儲存位址,例如: ... 二維陣列 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a...
- 5C++教學(二十一):指標陣列 - 痞客邦
C++教學(二十一):指標陣列. 指標即然也是變數的一種,有時為了集合資料與處理上的方便,我們也可以使用陣列的方式來管理指標變數,宣告指標陣列的方式 ...