關於指針數組與數組指針的那些小事情

什麼是指針數組?什麼是數組指針?

簡單的回答就是指針數組就是存的都是指針,而數組指針就是一個指針而已

定義方式:(優先級:()>[]>*)

  • 指針數組 int *p[4];
  • 數組指針 int (*p)[4]

我們平時定義數組的時候是這樣

int *p = a[4];

這就是指向一個一維數組的指針的頭,*p++就是取出下一位的數組的存放值,p存放的就是數組的頭指針的地址

那麼數組指針呢?

int (*p)[4] = a[4][4];

這裏的指針也僅僅只是一個指針變量,指向的是行指針的頭,怎麼解釋呢,就可以解釋爲p存放的地址是整個二維數組的頭指針。

那麼p++代表什麼呢 就代表着下一個指針的頭指針,那麼如果要取出來(i,j)呢?

*(*(p+i)+j),*(*(p+i)[j])

就是*(p+i)存放的是一個一維數組的地址,此時就像一個上面的一維數組的p;

那麼指針數組呢?

int *p[4];

這裏面的一個數組裏面存放的都是指針,也就是有個指針變量;每一個變量就相當於一開始定義的一維數組的指針變量,那麼要讀取(i,j)的值要怎麼操作呢?

*(p[i]+j)  將p[i]當成一個普通的數組存放的值,要訪問第幾個值一樣,然後p[i] 就相當於一維數組的指針變量p了;

 

 

 

 

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