陣列和指標

2021-05-24 23:09:06 字數 924 閱讀 6148

陣列的訪問是通過先獲取陣列的首位址,然後通過相對的偏移量來獲取位址,通過位址讀出內容;

指標的訪問形式:假設指標

本身的位址是4624,先是儲存變數是4624的內容,假設是5081,取得i的值算出5081+i的值然後讀取該位址的內容,也就是說指標

訪問陣列的多了一次額外的提取。

指標儲存的是資料的位址,間接來訪問資料,首先獲得是儲存的內容,將其作為位址,然後通過

位址提取資料。而陣列a[i]只是簡單的以a+i為位址取得資料。

int *p[10];因為的優先順序比*高,所以解釋為 指標陣列,意思就是 先是定義乙個陣列,然後前面加int *表示裡面的成員都是int型指標,這就是 指標陣列。陣列每個元素都存放這int型資料的位址,也就是乙個int型指標。還是來看**吧(*^__^*) 。

char * p[5];//定義指標陣列

for(i = 0;i < 5;i++)

int (*p) [10];這裡就解釋為陣列指標,意思是定義乙個指標,然後指向的是乙個陣列,並且這個陣列都是整型的。

int main( void )

我除錯了一下,

p[0]->0x0012fef8    a[0]->0x0012fef8

p[1]->0x0012ff20    a[1]->0x0012ff20

p[2]->0x0012ff48    a[3]->0x0012ff48

p為陣列指標,顧名思義就是這個指標存放的就是乙個陣列,這裡的p就是指向的乙個擁有10個元素的整型陣列,

中括號裡面的10就代表它指向的陣列是10元素的。這裡我們定義了乙個二維陣列a,p = a;就將a賦值給了p,從上面的除錯資訊我們能清楚的得出記憶體關係,

a[ 0 ]:   <------p[ 0 ]

a[ 1 ]:   <------p[ 1 ]

這時候p++就是整行元素的大小來加了。

陣列指標和指標陣列

陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指向...

陣列指標和指標陣列

一 定義 陣列指標 陣列指標 是指向陣列 首元素的位址的 指標,其本質為指標 這個指標存放的是陣列首位址的位址,相當於2級指標,這個指標不可移動 指標陣列 陣列元素為指標的陣列,其本質為陣列。二 舉例 int a 3 4 這個無需多說,就是乙個 二維陣列 int p 4 就相當於int p 4 它就...

陣列指標和指標陣列

這兩個名字不同當然所代表的意思也就不同。我剛開始看到這就嚇到了,主要是中文太博大精深了,整這樣的簡稱太專業了,把人都繞暈了。從英文解釋或中文全稱看就比較容易理解。指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an ar...