• 前提知识:
  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* 类型即是指针类型,也就是里面是指针,即:某个值的地址。

                char *p[4] 和 char (*p)[4]的区别

      3. char (*p)[4]

                  我们可以将 (*p)看成一个整体,然后  (*p)存放的是char[4]数组中首个元素的地址,p存放的是(*p)的地址,即:数组的地址。

                   char *p[4] 和 char (*p)[4]的区别

相关文章: