左右法则:先确定变量,接着按着先右后左的顺序看 碰到[]为数组 碰到()为函数
变量:什么类型的变量
指针:指向什么类型
数组:数组里的元素类型
函数:形参为.....返回值为.......
保存地址 称为指针变量
保存字符 称为字符变量
保存整型 称为整型变量
int*(*(*(*fp1)(int))[10]
fp1:函数指针变量,指向形参为int,返回值为一个数组指针,该指针指向整型数组指针
int*(*(*arr[5])())();
arr[5]:函数指针数组,该数组元素指向形参为空返回值为函数指针,该指针指向一个形参为空返回值为int*的函数。
float(*(*b())[])();
b:函数,该函数为空,返回值为数组指针,该指针指向一个函数数组指针数组,数组的元素指向一个形参为空,返回值为float的函数。
void*(*c)(char a,int(*b)());
c:函数指针变量,指向一个由两个参数的返回值为void*函数,第一个形参为char,第二个形参为函数指针,该指针指向形参为空,返回值为int的函数;
float(*(*e[10])(*int))[5];
e:函数指针数组,数组里的元素指向一个形参为*int,返回值为数组指针,指向的数组为float型数组;