C++中函数指针的用法

1.函数指针

函数指针是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。

函数指针的声明方法为:
返回值类型 ( * 指针变量名) ([形参列表]);
注:“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
//无参数函数指针
#include<iostream>
using namespace std;
void hello(){
    cout<<"Hello World"<<endl;
}
int main(){
    void (*pf)();
    pf=&hello;//pf=hello也可以
    (*pf)();
    return 0;
}

//带参数函数指针
#include<iostream>
using namespace std;
void hello(char *str){
    cout<<"Hello "<<str<<endl;
}
int main(){
    char *str="World";
    void (*pf)(char *);
    pf=&hello;//pf=hello也可以
    (*pf)(str);
    return 0;
}

2.typedef的函数指针用法

#include<iostream>
using namespace std;
typedef int (*fp)(int,int);
int add(int a,int b){
    return a+b;
}
int sub(int a,int b){
    return a-b;
}
int main(){
    int a = 2,b = 1;
    fp p1 = &add;
    cout<<(*p1)(a,b)<<endl;
    fp p2 = &sub;
    cout<<(*p2)(a,b)<<endl;
    return 0;
}

 

 

posted @ 2017-04-12 20:42  奇热行  阅读(252)  评论(0)    收藏  举报