摘要:
函数指针作用一般有二: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