int p;
int *p;
int p[3];
int *p[3];分析方式:首先从P开始分析,先与[]结合因为其优先级比*高,所以p是一个数组,然后再与*结合,说明数组里的元素是指针类型,然后再与int结合,说明指针所指向的内容的类型是整形的,所以P是一个由返回整形数据的指针所组成的数组。
int (*p)[3];分析:1:p是一个指针,指针所指向的内容是一个数组,数组里的元素是整形,P是一个指向由整形数据组成的数组的指针。
int **p;P是一个指针,然后指针所指向的元素是一个指针,说明该指针所指向的元素是一个整形
int p(int) P是一个函数,该函数的参数是一个整形,并且函数的返回值是一个整形数据
int (*p)(int) //p是一个指针,指向一个函数,函数的参数是一个int类型,并且返回int
int *(*p(int))[3]
//可以先跳过,不看这个类型,过于复杂
/从 P 开始,先与()结合,说明 P 是一个函数,然后进
//入()里面,与 int 结合,说明函数有一个整型变量
//参数,然后再与外面的*结合,说明函数返回的是
//一个指针,,然后到最外面一层,先与[]结合,说明
//返回的指针指向的是一个数组,然后再与*结合,说
//明数组里的元素是指针,然后再与 int 结合,说明指
//针指向的内容是整型数据.所以 P 是一个参数为一个
//整数据且返回一个指向由整型指针变量组成的数组
//的指针变量的函数