C++之指針數組與數組指針

指針數組

說明

顧名思義,指針數組描述的對象是一個數組,在此前提下,我們可以聯想到字符串數組,整型數組,浮點型數組等。字符串數組指的是數組中的每個元素都是字符,整形、浮點型數組中每個元素都是整形的,浮點型的數字,指針數組中每個元素都是指針(地址)。指針數組是由若干個指針組成的數組,只不過這個數組裏存放的是地址。

定義

int* arr[6];    //int型指針數組
char* arr[4];  //char型指針數組

數組指針

說明

數組指針,首先明確它是一個指針,然後再來談它是什麼類型的。指針包含很多種類型,包括指向那些最基本的數據類型如int,float,char,double等的指針,還有指向那些由基本數據類型組成的字符串、數組、結構的指針。所以說數組指針是一個指向數組的指針。

定義
int (*ptr)[10];  //由於[]的優先級高於*,所以必須添加括號.
char (*ps)[5]

如要將二維數組賦給一指針,應這樣賦值:

int a[3][4];
int (*p)[4]; //該語句是定義一個數組指針,指向含4個元素的一維數組。
p=a;        //將該二維數組的首地址賦給p,也就是a[0]或&a[0][0]
p++;       //該語句執行過後,也就是p=p+1;p跨過行a[0][]指向了行a[1][]

所以數組指針也稱指向一維數組的指針,亦稱行指針。

參考

數組指針和指針數組的區別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章