C语言超复杂的函数声明,C语言小知识之复杂的函数声明


C语言超复杂的函数声明,C语言小知识之复杂的函数声明

看到上面的函数声明int (*(*pf( )) ( )) ( )时是不是头都大了?那它究竟表示的是什么意思呢?今天我们就拿它分析一下。

分析原则

1.要确定声明中出现的操作符的优先级,

2.要确定在声明中标识符与某个操作符结合起来的时候有什么意义,并由内向外逐步来解读.

注意点

当指针解引用操作符*与一个表示函数的标识符结合时,表示这个函数的返回值是一个指针。例如 *a() 表示a是一个返回值为指针的函数。

解析过程

pf():pf是一个无参函数

*pf():pf是一个无参函数,它的返回值是一个指针

(*pf())():pf是一个无参函数,它的返回值是一个无参函数的指针

(*(*pf())()) (): pf是一个无参函数,返回值是一个无参的函数的指针,函数返回值是一个无参函数的指针

int (*(*pf( )) ( )) ( ):pf是一个无参函数,返回值是一个无参的函数的指针。这个函数的返回值又是一个无参数且返回值为int的函数的指针

尾言

复杂冗长的声明不要怕麻烦,由内到外一步一步分析,到最后你会发现不过如此,好了,今天的内容就到这里吧,看完这个文章希望大家能够有点收获吧,也希望大家能帮忙三连下,如果阁下C语言比较差的,二进制都不知道是什么的同学,不妨关注下小编的专栏视频教程

通俗易懂,深入浅出,一个视频只讲一个知识点。视频不深奥,不需要钻研,在公交、在地铁、在厕所都可以观看,随时随地涨姿势,人人都可以学习的视频教程


分享到:


相關文章: