右左法则(指针阅读技巧解析)
右左法则(指针阅读技巧解析)
1. 从最里层的圆括号中未定义的标示符看起
2. 首先往右看,再往左看
3. 当遇到圆括号或者方括号时可以确定部分类型,并调转方向
4. 重复2,3步骤,直到阅读结束
int (*p)(int*, int (*f)(int*));
==>>p是一个指针,指向一个含有两个参数的函数,函数返回值为int。参数(int (*f)(int*)) f为一个指针,指向一个函数,函数参数为int*,函数返回值为int。
int (*p[5])(int*);
==>>p是一个数组,数组中存放指针,指针指向参数为int*返回值为int的函数
int (*(*p)[5])(int*);
==>>p是一个指针,指向一个数组,数组存放指针,指针指向一个参数为int*返回值为int的函数
int (*(*p)(int*))[5];
==>>p是一个指针,指向一个函数,函数参数为int*,函数返回值为一个指向一个int[5]的数组指针