int (*(*ptr(int,int)))(int)的理解
刚刚网易笔试中的 int (*(*ptr(int,int)))(int),我的理解是这样的,有不对的地方,请各位大佬指出,谢谢!!!!!
只需要记住 () 的优先级比 * 要高就行了
1. 先看内层括号 ptr(int, int),说明 ptr 接收(int, int) 类型的参数。
2. 再看 *ptr(int, int)说明 可以对 ptr(int, int) 返回的结果解引用,即 ptr(int, int) 返回一个指针。
3. *(*ptr(int, int)) 说明ptr(int, int)返回的结果解引用之后还可以通过*解引用,说明 ptr(int, int)返回一个二级指针。
4. 最外层的int(...)(int)说明了这个二级指针解两次引用后,是int(...)(int)类型的函数。
综上,声明了一个名为 ptr 的函数,他接受(int, int) 类型的参数,并返回一个二级函数指针,这个二级函数指针所对应的函数接受一个 int 类型参数,返回一个 int 。
#网易#