函数指针

摘要:

函数指针作用一般有二:1 调用函数  2 作为参数。 需要注意的是typedef这种是定义了 一种函数指针的类型(特定的参数类型和返回值)


代码示例如下,

int func1(int x){
return x;
}
int func2(int x){
    cout<<"we are in func2"<<endl;
    return 2;
}
//函数名做参数,隐式的使用函数指针 
int f(int p(int t),int x){
    int c=p(x);
    cout<<c<<endl;
    return 0;
}


//定义函数指针类型,注意这个一个类型
//typedef int (*func3) (int x);


//显式使用函数指针
int f2(int (*func3)(int ),int x){

     func3(x);
    cout<<"we are in f2"<<endl;
    return 0;
}


int main(){
//函数名直接做参数,因为函数名是指针,本质上也是函数指针做参数
    f(func1,5);
    f(func2,5);
//声明一个函数指针,调用函数使用
    int (*ff) (int x);
    ff=func1;
    cout<<ff(7);
//函数指针作为参数
    f2(func2,5);
    return 0;
}


运行结果:

[algo@localhost cpp-learning]$ ./a.out 
5
we are in func2
2
7we are in func2
we are in f2

原文地址:https://www.cnblogs.com/catkins/p/5270506.html