指標陣列和陣列指標的區別

2021-08-25 14:02:20 字數 814 閱讀 8304

簡單地說,int *p[4]是指標陣列,int(*p)[4]是指向陣列的指標

指標陣列:是乙個元素全為指標的陣列

陣列指標:可以理解為指標,只是這個指標型別不是int而是int[4]型別的陣列

int *p[4],p是乙個指標陣列,每乙個指向乙個int型的,等價於(int *) (p[4])

int (*p)[4],p是乙個熱指標,指向int[4]的陣列

上面的原因是,*(間接引用運算子) 的優先順序低於的優先順序。

首先看int *p[4], 的優先順序高,所以塔首先是乙個大小為4的陣列,即p[4],剩下的int *作為補充說明,即說明該陣列的每乙個元素為指向乙個整數型別的指標。int *p[4]的儲存結構如下:

再看int (*p)[4]。它首先是乙個指標,即*p,剩下的int[4]作為補充說明,即說明指標p 是指向乙個長度為4的陣列。int (*p)[4]的儲存結構如下:

指標陣列和陣列指標的區別

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

指標陣列和陣列指標的區別

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

指標陣列和陣列指標的區別

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