zoukankan      html  css  js  c++  java
  • 返回指向函数的指针

    函数可以返回指向函数的指针,但是,正确写出这种返回类型相当不容易:

    1     // ff is a function taking an int and returning a function pointer 
    2      // the function pointed to returns an int and takes an int* and an  int 
    3      int (*ff(int))(int*, int);

    阅读函数指针声明的最佳方法是从声明的名字开始由里而外理解。

    要理解该声明的含义,首先观察:
    ff(int)
    将 ff 声明为一个函数,它带有一个 int 型的形参。该函数返回
    int (*)(int*, int);
    它是一个指向函数的指针,所指向的函数返回 int 型并带有两个分别是int* 型和 int 型的形参。

    以上文字摘自《C++ Primer》,其实有一个方法理解起来更简单:

    将ff(int)看成一个变量,假设为p,那么上面这个函数就变成:

    1 int (*p)(int*, int);   //ff(int)被看作一个整体p

    这样就一目了然,p是一个指向函数的指针,它指向的函数有两个参数,分别是int *和int型,该函数的返回类型是int。这是其一。

    其二:因为p此时代表的实际上是:ff(int),所以,可以理解为p是ff(int)函数的返回值。

    综合起来解释就是:ff(int)函数返回一个指针,这个指针指向一个函数,该函数“有两个参数,分别是int *和int型,该函数的返回类型是int”。

  • 相关阅读:
    C++ UFT-8和GB2312间的转换
    ssh不输入密码
    thinkpad T480安装WIN7
    删除目录下的不规则文件
    使用组合的方式来创建新类, 并可以重新定制某些类的特定行为
    使用gradle 编译生成 apk出现的问题
    android studio 使用 SVN
    Fiddler 抓取 Genymotion 数据包
    在eclipse中查看android源代码
    计算 md5
  • 原文地址:https://www.cnblogs.com/tingshuixuan2012/p/2991586.html
Copyright © 2011-2022 走看看