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);
}

 

posted @ 2015-09-17 15:59  李哲操的博客  阅读(287)  评论(0编辑  收藏  举报