數組指針、指針數組與指針的指針

數組指針:

    首先看名字「數組指針」是「指針」,那就能夠看成指針理解囉。可是前面有數組,也就是它指向的是數組。
    看-》 int (*p)[10], 咱們從表達式分析,由於()的優先級高,因而*p表明p是指針,又int 修飾的是[10]表示
   一個含有10個int型的數組,因而p表明的是含有10個元素的數組的首地址。

   也許該這麼定義數組指針:

              int (*)[10] p

       由於依咱們的手法,確定前面是類型,後面是變量嘛,因而前面定義的類型是一個數組指針,
  
 後面是該指針的名字。可是編譯器可不這麼想啦,由於這樣寫太醜。因而就寫成了
       
            int (*p)[10] 
  

指針數組:

    指針數組,故名思義指針數組就是「數組」,因而呢,可是數組裏面的內容是指針,因而呢咱們
   
          int *p[10]
    
   這裏能夠這樣理解,因爲[]的優先級比*更高,因而首先這個p 與[]結合成一個數組,因而數組名

    是p,後面的int *則修飾裏面的內容,獲得是一個含有10個int*的數組。




指針的指針

    指針的指針就是指針裏面存儲的內容仍是一個指針地址。


數組指針 指針數組 指針指針在形參與實參上的關係

數組名被改寫成一個指針參數」規則並非遞歸定義的。數組的數組會被改寫成「數組的指針」,而不是「指針的指針」:css

實參                                                     所匹配的形參web

數組的數組          char c[8][10];                  char (*)[10];          數組指針數組

指針數組             char *c[10];                     char **c;               指針的指針spa

數組指針(行指針)  char (*c)[10];                  char (*c)[10];        不改變指針

指針的指針           char **c;                         char **c;               不改變blog


 








相關文章
相關標籤/搜索