指針數組(int *a[])和數組指針 (int (*a)[])


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表示指針,也就是同時定義了一個指針 和一個整型數組。結合在一起就是定義了指針指向定義的整型數組

 

 

想不到其他的好的方法去解釋了,第二個輔助記憶方法有點牽強,不過只要記憶住第一個,第二個也就自然記住了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM