指標陣列和陣列指標

2021-04-12 20:45:08 字數 2123 閱讀 3356

有關陣列指標和指標陣列容易混淆,本文舉例說明兩者的區別,並加以分析。

基本概念:

-------------------

指標---------------------

inta=1

;int*p=&

a;----------------

指標的指標

------------------

int**

p2p=&

p;-----------------

簡單陣列

--------------------

intb[

20];

-----------------

指標陣列

--------------------

int*

p[10

];      

//指標陣列,含有10個指標元素,

//即每乙個元素都是乙個指標

-----------------

陣列指標

---------------------

int(

*p)[

10];    

//這個指標用來指向含有10個整數

//元素的陣列

分析如下**:

#include

<

iostream

>

#include

<

typeinfo

>

using

namespace

std;

intmain()

;int*p

=&a;

int**

p2p=&

p;int

*pb[2]

=;int(

*p2b)[2]

=&b;

cout

<<

"declaration [int a=10] type==

"<<

typeid(a).name()

<<

endl;

cout

<<

"declaration [int b[2]=] type==

"<<

typeid(b).name()

<<

endl;

cout

<<

"declaration [int *p=&a] type==

"<<

typeid(p).name()

<<

endl;

cout

<<

"declaration [int **p2p=&p] type==

"<<

typeid(p2p).name()

<<

endl;

cout

<<

"declaration [int *pb[2]=] type==

"<<

typeid(pb).name()

<<

endl;

cout

<<

"declaration [int (*p2b)[2]=&b] type==

"<<

typeid(p2b).name()

<<

endl;

return0;

} 輸出結果:

declaration [

inta=10

] type

==int

declaration [

intb[2]

=] type

==int[2

]declaration [

int*p=&

a] type

==int

*declaration [

int**

p2p=&

p] type

==int**

declaration [

int*

pb[2]=

] type

==int*[

2]declaration [

int(

*p2b)[2]

=&b] type

==int(*

)[2]

指標陣列和陣列指標

理解這兩個概念,當從語言學的語法角度開始,定語 名詞,即 的 語句。指標陣列 指標的陣列 陣列指標 陣列的指標。一 指標陣列 元素為指標的陣列 顧名思義,就是說的首先是乙個陣列吧,然後陣列的元素是指標而已。說明形式為 type pointer array constant1 constant2 co...

指標陣列和陣列指標

該文時自己對指標陣列用法的一點總結,還望高手指點不足原文如下 由於以前對指標陣列不太明白,所以自己寫了 乙個小的測試程式來驗證了自己的猜測,先總結如下 指標陣列,由名字就可以知道的該陣列中的成員都是為指標的。其定義的方法為 char p 5 該初定義乙個包含5個char 型別的陣列的指標,由於p本身...

指標陣列和陣列指標

指標陣列和陣列指標 這個問題大家應該都碰到過,指標陣列和陣列指標,剛開始看時覺得還是能看懂,但是過些時又搞混了,最後發現還是沒有真正理解。下面就簡單說說這兩個概念 一 指標陣列,顧名思義,就是說的首先是乙個陣列吧,然後陣列的元素是指標而已。說明形式為 type pointer array const...