1. 程式人生 > >char *p[4] 和 char (*p)[4]的區別

char *p[4] 和 char (*p)[4]的區別

  • 前提知識:
  1. 指標佔4個位元組。
  2. 指標存放的是地址
  3. 指標加1,代表偏移一個指標型別的大小
  • 開始區分
  1. 先說一下char a[4].

                 a:陣列中第一個元素的首地址 即:  a === &a[0]

                 a+1: 表示a偏移一個 指標型別(char)大小的地址,即  a+1   === &a[1]

      2. char *p[4]

               我們可以將其看成  (char*) p[4],這樣可以看到p是和[4]在一起的,也就是p[4]是個陣列,p存放的是陣列中首個元素的地址,數組裡存放的是  char*型別的資料,char* 型別即是指標型別,也就是裡面是指標,即:某個值的地址。

                

      3. char (*p)[4]

                  我們可以將 (*p)看成一個整體,然後  (*p)存放的是char[4]陣列中首個元素的地址,p存放的是(*p)的地址,即:陣列的地址。