- 前提知识:
- 指针占4个字节。
- 指针存放的是地址
- 指针加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)的地址,即:数组的地址。