函数指针

来源:互联网 发布:数据选择器 数据开关 编辑:程序博客网 时间:2024/05/21 13:58

int (*pquadrate)(int a) = &quadrate;是啥意思?

不太明白(*pquadrate)后面为啥还有个(int a) ??




详解

原文链接:http://www.imooc.com/qadetail/89162?t=199962#id_199962


这是函数指针声明。

这是将pquadrate声明为函数指针,它指向的是有一个int型参数,返回值为int的函数。这语句同时将pquadrate初始化为quadrate的地址(显然quadrate应该是个函数名)。


一步一步讲这个声明:

  • 这语句声明的是pquadrate变量,前面有个*,而且是用小括号和变量名括起来的(*pquadrate),表明这个变量名优先和*结合。声明变量时前面有*就代表这个变量是指针,所以pquadrate是个指针。那它指向什么呢?

  • 接着看,后面有小括号,前面有类型,表明是个函数。参数就是int a,返回值是int型。所以pquadrate是指向这样的函数的指针。


0 0