int (*(*(*func)(int *))[5])(int *);
实际当中,需要声明一个复杂指针时,如果把整个声明写成上面所示的形式,对程序可读性是一大损害。应该用typedef来对声明逐层分解,增强可读性,例如对于声明:
int (*(*func)(int *p))[5];
可以这样分解:
typedef int (*PARA)[5]; typedef PARA (*func)(int *);
参考:
int (*(*func)[5])(int *p); 如何看懂复杂的指针声明?_网易订阅 (163.com)
(57条消息) 彻底攻克C语言指针_奋斗的小虾米的博客-CSDN博客
————————————————
版权声明:本文为CSDN博主「奋斗的小虾米」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a754315344/article/details/105248012
pf() pf是一个无参数函数 * pf() pf是一个无参数函数,它的返回值是一个指针 ( * pf() ) () pf是一个无参数函数,它的返回值是一个无参数函数的指针 * ( * pf() ) () pf是一个无参数函数,它的返回值是一个无参数函数的指针,这个函数的返回值又是一个指针 ( * ( * pf() ) () ) () pf是一个无参数函数,它的返回值是一个无参数函数的指针,这个函数的返回值又是一个无参数函数的指针 int ( * ( * pf() ) () ) () pf是一个无参数函数,它的返回值是一个无参数函数的指针,这个函数的返回值又是一个无参数且返回值为int的函数的指针。