首先从和他类似的char *p[] 开始理解,比如说char *p[] = {“aa”, “bbbb”, “ccc”}; 其实这个就是存储指针的数组。在内存中,实际上是|地址0|地址1|地址2|,实际上内存中存了三个连续的地址,其实分别是p[0], p[1]和p[2]。而如果是*p[1],实际上就是取出地址0中对应位置存储的实际的字符串。
既然char *p[]理解了,那么char **p实际上是差不多的。p实际上就是这个地址数组的存储地址,也就是|地址0|地址1|地址2|这个结构的首地址。所以我*p实际上是取出了这个首地址中存储的内容,其实也就是地址0。而**p就是取出了这个地址0中存储的内容,也就是“aa”
