1指针数组&数组指针
Int*p[5];
Int (*p)[5];
首先第一个是指针数组,由于[]的优先级高于*,所p先和[]结合,因此首先它是一个数组,然后它里面放的是指针.
第二个是数组指针,由于()的优先级高于[],所以p先和*结合组成指针,指针指向该数组.
2函数指针
Char *(*fun1)(char *p1,char *p2);
Char * *fun2(char p1,char p2);
第一个是函数指针,fun1是指针变量指向一个函数,这个函数有两个指针类型的参数。第二个是一个函数,fun2是函数名,参数为两个指针,返回值为 char 型二级指针。
3函数指针数组&指向函数指针数组的指针
函数指针数组:首先它是一个数组,数组元素为函数指针。(char *(* a[4])(char*p);它是一个数组,数组名为 a ,数组内有四个指向函数的指针;这个指针指向一些返回值类型为指向字符的指针,参数为指向字符的指针的函数。)
函数指针数组指针:首先它是一个指针,这个指针指向数组,这个数组里面存的都是指向函数的指针。(char (*(* a)[4])(char *p); 这个指针指向包含了4个元素的数组;这个数组里面存的是指向函数的指针;这个指针指向一些返回值类型为指向字符的指针,参数为指向字符的指针的函数。)