指向二維數組的指針定義方式



看了一些資料,指向二維數組的指針定義方式並不是直接定義指針的指針

int   a[3][6];

int **p=a;        像這樣定義是錯誤的

因爲a代表着除了第一列以外的列數的維數大小,如a+1的地址就是a[1]的地址,也就是a[1][0]的地址,而p僅是整形指針的指針,沒跨越一次就是4字節,因此他們的大小是不匹配的,所以這樣子直接等於號是不正確的。

要真正的定義方式應概是定義指向n維數組的指針,n就是除第一維的另外維度,

如上面的指針定義應該爲

int  (*p)[6];

p=a;

這樣子就 可以就可以通過p以下標形式來訪問數組。

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