指针数组其实是数组,只不过是数组里面放着指针如int *p[],由于中括号的优先级高于星号,所以p先与中括号结合形成数组,然后再与星号结合形成指针数组,即每一个数组元素是一个指向×××数据的指针。而数组指针实际上是指向数组的指针如int(*p)[]。
同理函数指针是指向一个函数的指针,指针函数是说这个指针指向了一个函数如int(*fun)(int)
,而函数指针则意味着它是一个函数,这个函数的返回值是一个指针,如int * fun(intx).因此通过这个规律我们可以理解更深层次的更复杂的指针,
如:
int *(*p(int))[3]
首先p是一个函数,这个函数有一个整型变量,函数的返回值是一个指针,这个指针指向一个数组,这个数组的每个元素是一个整型指针。