指標與陣列

2021-10-25 15:41:03 字數 1546 閱讀 7668

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元素的陣列。其實這兩種寫法主要是因為運算子的優先...