zoukankan      html  css  js  c++  java
  • C++ 函数指针

          我们都知道,数组名就是指向数组第一个元素的常量指针。同理,对于一个函数而言,函数名也是指向函数第一条指令的常量指针。而编译器要做的就是在程序编译之后,为每个函数分配一个首地址,即该函数第一条指令的地址。一般情况下,我们可以用一个指针来保存这个地址,而这个指针就是函数指针,该指针可以看作是它指向函数的别名,所以我们可以用该指针来调用这个函数。

    =========================函数指针的声明方法=========================

                type (*vp) (type,type);

      该语句声明了一个指针vp,它指向了一个函数,这个函数带有了2个type型参数并返回一个type的值。(type可以是任意的类)

    eg,int (*vp) (int,int);

    简单的例子:

    #include<iostream>
    
    typedef int (*vp)(int,int);//为函数指针定一个别名,方便使用
    int add(int x,int y){return x+y;}
    int min(int x,int y){return x-y;}
    void print(vp p,int x,int y){std::cout<<"result="<<p(x,y)<<std::endl;}//函数指针作为函数参数,在函数中调用相应的函数。
    int main()
    {
        int x,y;
        vp p;    //声明函数指针p
        std::cin>>x>>y;
        p = add;    //指向add函数
        print(p,x,y);
        p = min;    //指向min函数
        print(p,x,y);
    }
  • 相关阅读:
    贪心法之活动安排问题
    动态规划算法之最优二叉搜索树
    动态规划之最大字段和问题
    动态规划算法之图像压缩问题
    动态规划算法之0-1背包问题
    动态规划算法之投资问题
    平面点集的凸包问题
    动态规划(DP)之多边形游戏问题
    凸多边形最优三角划分
    最长公共子序列问题
  • 原文地址:https://www.cnblogs.com/kaixuanguilai/p/4816655.html
Copyright © 2011-2022 走看看