//函数指针
//定义
typedef int (*int_intIntFuncPnt)(int ,int);//int_intIntFuncPnt为返回值为int,形参为两个int的函数指针
typedef int int_intIntFunc(int,int);//int_intIntFunc为返回值为int,形参为两个int的函数
int sub(int a ,int b){
return a-b;
}
int funcPnt(int_intIntFuncPnt f){
cout<<"funcPnt(1,2)="<<f(1,2)<<endl;
return f(1,2);
}
int func(int_intIntFunc f){//同上,等效
cout<<"func(1,2)="<<f(1,2)<<endl;
return f(1,2);
}
int_intIntFuncPnt returnFuncPnt(){//函数指针作为返回值,
return sub;
}
/*
int_intIntFunc returnFunc(){//error,函数不可作为返回值
return sub;
}
*/
int (*fff(int a))(int ,int){//从函数名开始向外读
return sub;
}
int_intIntFuncPnt fff2(int a){//同上,等效
return sub;
}
void test_funcPointer(){
int_intIntFuncPnt f1=0;//未定义,不可用
int_intIntFuncPnt funcSub=sub;
int_intIntFuncPnt funcSub2=⊂//同上,等效
cout<<"funcSub(1,2)="<<funcSub(1,2)<<endl;
cout<<"funcSub2(1,2)="<<funcSub2(1,2)<<endl;
//cout<<"f1(1,2)="<<f1(1,2)<<endl;//运行时错误
int_intIntFunc f2;
funcPnt(sub);
func(sub);
int_intIntFuncPnt subFunc=returnFuncPnt();
cout<<"returnFuncPnt()(3,5)="<<returnFuncPnt()(3,5)<<endl;
}
函数指针
最新推荐文章于 2025-03-24 20:56:16 发布
本文深入探讨了函数指针的概念及应用,通过定义不同类型的函数指针,并演示如何使用它们调用函数,展示了函数指针作为参数和返回值的用法。
1327

被折叠的 条评论
为什么被折叠?



