int iarr[2]
[3]=
;int
(*parr)[3
]= iarr;
//二維陣列名是乙個陣列指標,陣列指標是指向乙個陣列首位址的指標,它實際上也是一種指標型別,類似於函式指標。*(
*(parr +1)
+2);
//訪問第一行第二列的元素*(
*(iarr +1)
+2);
//訪問第一行第二列的元素
//parr是乙個指向陣列的指標,在這個指標上加減乙個整數都是移動整行,而不是乙個元素。比如說,parr+1代表的現在指標已經指向第一行元素了,也就是實際中的第二行,而要取得指標所指的物件,就要用到解引用運算子*,所以*(parr+1)就代表第一行陣列,是整個這一行元素就取到了,那現在要取這一行的第二個元素,只須將指標再移動兩個元素,即*(iarr+1) + 2,這樣就指向了這個元素的位址,再解引用取得元素的值即可。
/*傳二維陣列*/
//第1種方式:傳陣列,第二維必須標明
/*void display(int arr[4])*/
void
display1
(int arr[
4],const
int irows)
cout<} cout<}//第2種方式:一重指標,傳陣列指標,第二維必須標明
/*void display(int (*parr)[4])*/
void
display2
(int
(*parr)[4
],const
int irows)
cout<} cout<}//注意:parr[i]等價於*(parr+i),一維陣列和二維陣列都適用
//第3.1種方式:
void
display3
(int
*arr,
const
int irows,
const
int icols)
cout<} cout<}
int
**p=
newint
*[row]
;//row是二維陣列的行,p是指向乙個指標陣列的指標
for(
int i=
0; i)p[i]
=new
int[col]
;//col是二維陣列的列,p是指向乙個int陣列的指標
//----------刪除這個二維陣列--------//
for(
int i =
0; i < row;i++
)delete
p[i]
;//刪除二維陣列每行內的資料(每行內又是乙個有col個元素的陣列,p[i]指向該陣列的首位址)
delete
p;// 最後再銷毀指標陣列
void
func
(int
**p)
;
指標與陣列,指標陣列 陣列指標
int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...
指標陣列與陣列指標
1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...
指標陣列與陣列指標
呵呵,實在是厭倦了繞口的解釋。指標陣列,故名思義,就是指標的陣列,陣列的元素是指標 陣列指標,同樣,就是直想陣列的指標。簡單舉例說明 int p 2 首先宣告了乙個陣列,陣列的元素是int型的指標。int p 2 宣告了乙個指標,指向了乙個有兩個int元素的陣列。其實這兩種寫法主要是因為運算子的優先...