望解释一下这道题 尤其是**p那

img

上面那个回答不对哈。
运行结果:Afternoon

  1. *a[] 这叫指针数组。就是说a是一个数组里面装的都是指针。
  2. 数组本身是一个指针。在加上这个数组里面都是指针,因此要传递a时,需要一个二维指针 **,这样你才能访问a中每一个指针所指的内容。

所以:
p 指向 a 我们可以得出:
*p就是 a 的取值,也就是a[0] , 也就是“Morning” 的地址。
**p就是 a 的取值的取值,也就是a[0]的取值,也就是“Morning” 的地址所指的值,也就是“Morning”
因此++p后,p 指向 a + 1, **p 就是 a+1 的取值的取值,也就是 a[1] 的取值, 也就是 “Afternoon” 的地址所指的值,也就是“Afternoon”

指向指针的指针是*p,也就是指向a[],p++也就是指向下一个指针,结果就是第一个选项moring