簡單地說,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...