1.對指針有關的表達式閱讀遵循的規則是“從右到左、由近到遠、括號優先”。
int *a[10] 從字符a開始,右側是[10],表示a 為一個包含10個元素的數組,左側為指針標記,表示這個數組中保存的事指針,再左邊是int 表示所有的指針指向整型數據。
int (*a)[10] 從字符a開始,括號優先,表示a是一個指針,右側為[10]表示指針指向一個數組,左側是int ,表示指針指向的數組為整型數組。
輔助記憶:
int *a[10]類比
1. int* a 等價於 int *a;
2. int a[10] 從字符a開始,右側是[10],表示a 為一個包含10個元素的數組,左側是 int 表示數組元素是整型的。
則int *a[10]等價於int* a[10], 從字符a開始,右側是[10],表示a 為一個包含10個元素的數組,左側是 int* 表示數組元素為整型指針。
int (*a)[10] :
則int (*a)[10] 首先知道這個表達式是一個數組,指針符號被括號括了進去,是為了和int* 區分,說明最終的數組元素為整型的,
*a表示指針,也就是同時定義了一個指針 和一個整型數組。結合在一起就是定義了指針指向定義的整型數組
想不到其他的好的方法去解釋了,第二個輔助記憶方法有點牽強,不過只要記憶住第一個,第二個也就自然記住了。
