首页 > 代码库 > C++指针函数和函数指针
C++指针函数和函数指针
函数返回类型分为
- 返回基本数据类型
- (指针函数)返回指针类型,返回的新指针指向返回值得地址 //指针函数不能返回局部量(函数内变量)的指针
- 返回引用类型,直接返回返回值的地址 //引用函数不能返回局部量(函数内变量)的引用,不产生副本。返回引用比返回指针更直接,可读性更好
函数的类型是指函数的接口,包括函数的参数定义和返回类型
如 函数double max(double,double);的类型是
double(double,double);
定义方法
typedef 类型 函数类型名 (形式参数表)
如: typedef double functionType(double,double);
使用:
如: functionType max,min,average;
(相当于同时声明了三个函数 double max(double,double);double min(double,double); double average(double,double);)
函数指针是指向函数的指针变量
定义方法
- 类型(*指针变量名)(形参表)
- 函数类型 *指针变量名
如: double (*fp)(double,double);
functionType *fp;
当函数指针作为函数参数时,可以传递函数的地址,通过参数调用不同的函数。
例子:
1 #include<iostream> 2 using namespace std; 3 //定义functionType函数类型 4 typedef double functionType(double,double); 5 //声明三个函数min max average 6 functionType min,max,average; 7 //定义函数指针fp 8 functionType *fp; 9 //含函数指针的函数callFunction10 double callFunction(functionType *,double,double);11 int main()12 {13 double a=4.3,b=3.6;14 cout<<"min = "<<min(a,b)<<"\tmax = "<<max(a,b)<<"\tave = "<<average(a,b)<<endl;15 //函数指针获取函数地址16 fp=min; cout<<"*fb min = "<<callFunction(fp,a,b);17 fp=max; cout<<"\t*fb max = "<<callFunction(fp,a,b);18 fp=average; cout<<"\t*fb ave = "<<callFunction(fp,a,b)<<endl;19 cout<<"call min = "<<callFunction(min,a,b);20 cout<<"\tcall max = "<<callFunction(max,a,b);21 cout<<"\tcall ave = "<<callFunction(average,a,b)<<endl;22 23 cin.get();24 return 0;25 }26 double min(double a,double b)27 {28 return a>b?b:a;29 }30 double max(double a,double b)31 {32 return a>b?a:b;33 }34 double average(double a,double b)35 {36 return (a+b)/2;37 }38 double callFunction(functionType *fp,double a ,double b)39 {40 return fp(a,b);41 }
C++指针函数和函数指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。