理解数组指针
首先数组指针是指针,指向一个数组在;
其次,数组指针和指针数组很容易混淆 (指针数组是一个数组,里面存放的是指针)
int *p[10];//1
int (*p)[10];//2
其实要分清楚上面哪一个是数组指针,其实要看 优先级,
表达式1,p先和[结合,与10 组成一个数组,再与结合,所以表达式1,本质上是一个数组, int * 代表它里面存放的是int* 类型的;
表达式2,由于“ () ” 的有结合性,所以p先与*结合 ,所以p是指针,指向一个长度为10的数组;
理解函数指针和定义
函数指针是指向一个函数的指针变量指针
其形式是:
void (*pfun1)();
void *pfun2();
pfun1是指针,pfun1先和*结合所以 pfun1是指针,指向一个函数,该函数无参数, pfun2是一个函数,返回值为 void
理解函数指针数组和定义,转移表
函数指针数组: 它是一个数组,里面存放的是函数指针;
int (*parr1[10])()
parr1先和[]结合,说明parr1是数组,是int(*)()类型的函数指针;
理解指向函数指针数组的指针和定义
void (*(*pfunArr)[5])()//指向函数指针数组的指针
理解回调函数的使用
回调函数是通过函数指针调用的函数。如果将函数指针作为一个函数参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
qsort函数