首先我們了解一下它們的定義:
指標陣列:首先它是乙個陣列,其次就是陣列的元素都是指標。
陣列指標:首先它是乙個指標,其次它指向乙個陣列,在32位系統下佔4個位元組。
知道了定義你也那不一定會判斷,現在來舉個栗子/\_/\:
(1)int *p1[4]
(2)int (*p2)[4]
要根據定義區分它們兩個其實涉及了乙個符號優先順序問題,「[ ]」的優先順序比"*"高而"( )"優先順序比"[ ]"高。
所以(1)中[4]先與p結合定義為乙個陣列,然後給這個陣列定義了乙個型別為int *[4],(1)為陣列指標,我們用編譯器看一下:
(2)中"( )"的優先順序比"[ ]"高,所以先定義乙個指標p2,p2然後p2指向了乙個陣列,陣列中的每個元素都是int型,(2)為指標陣列,我們用編譯器驗證一下:
看到這相信你已經會區分指標陣列與陣列指標了。
參考資料《c語言深度剖析》
區分指標陣列和陣列的指標
int a 10 定義乙個陣列,每個元素是int型別 int p 定義乙個指標,指向int型別 int a 10 定義乙個指標陣列,本質是個陣列,每個元素都是指標型別,並且指向int型別。指標陣列就相當於一次宣告了多個指標。陣列的每乙個元素都是乙個指標。使用時即可用a 0 a 1 等來存放位址。in...
指標陣列與陣列指標簡單區分
首先來介紹指標 在電腦科學中,指標 pointer 是程式語言中的乙個物件,利用位址,它的值直接指向 points to 存在電 腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將 位址形象化的稱為 指標 意思是通過它能找到以它為位址的記憶體單元。inc...
區分陣列指標與指標陣列
1.概念的區分 陣列指標 陣列的指標,首先說它是乙個指標,乙個指向陣列的指標。指標陣列 指標的陣列,它是乙個陣列,陣列中存放的內容為指標。2.優先順序的不同 優先順序為 比如int p n 因為 的優先順序最高,p先於結合,所以p是乙個指標,後面是陣列,於是這個就是陣列指標。在如int p n 優先...