1.指针数组
形如int *arr[10]的类型,指针数组可以简单理解为存放指针变量的数组。
2.数组指针
形如int (*)arr[10]的类型,数组指针可以简单理解为指向数组的指针。
就上面所介绍的两种类型来看,有一种较为简单的记忆方法,看*和[]谁先和arr接触,若是先和*接触,即为数组指针,若是先和[]接触,即为指针数组。
3.函数指针
形如int (*)cmp(void *,void *)的类型,该含义是指向输出为int型,参数为void *类型的cmp函数的指针。
4.函数指针数组
形如 int *cmp[10](void *,void *)的类型,该含义是一个元素个数为10的数组,其中放的是int (*)(void *,void *)类型的函数指针。
5.指向函数指针数组的指针
形如int(*(*cmp)[10])(void *,void *)的类型,该含义是指指向4中的函数指针数组的指针。
可见,函数指针即函数指针数组即往下以此递增的种种数组或指针,还是先和*结合的为指针,先和[]结合的为数组,两者可以以此往上进行关系上的递增,变成包涵某种函数指针的数组或是指向某种包涵函数指针的数组的指针,以此可以累加递增。
只要掌握了相关的技巧,对于指针的理解就异常简便。希望对大家有所帮助。