函数指针
来源:互联网 发布:魔方拼图软件 编辑:程序博客网 时间:2024/06/10 15:29
这是什么玩意?
函数不是数据,但它与变量有两点相通之处:一是它也有类型(返回类型),二是它也有地址(入口地址)。
函数的地址也可作为指针的值,这就是函数指针。
怎么用?
函数指针的说明格式与函数的原型相似,主要区别是:原来的“函数名”用“(*函数指针名)”替代。例如:
int(*pf)(float);
其中pf是一个函数指针变量。由于对函数指针pf的说明中已规定了函数的返回类型和参数表,因此,函数指针pf只能指向这类函数。
int f_float(float);int f_float_2(float);int f_char(char);int (*pf_1)(float) = &f_float;// 合法pf_1 = & f_float_2;// 合法int (*pf_2)(char) = &f_float;// 不合法int (*pf_3)(float) = &f_char;// 不合法
讲了这么多,函数指针有什么用呢?
C++语言本身不允许把函数作为参数。然而有了函数指针就可以通过函数指针起到把函数作为参数的作用。
例如,用来计算函数定积分的函数simpson(),对于不同的函数计算其定积分值应有一个“被积函数”参数,那怎么把被积函数作为参数呢?函数指针这时候就派上用场了:
float simpson(float a, float b, float(*pf)(float));
其中参数a、b给出定积分的上下限,函数指针pf则指向被积函数
float a = 3.0, b = 5.0;// 上下限float f1(float){...}// 被积函数1float f1(float){...}// 被积函数2float (*pf)(float) = &f1;// 函数指针pf指向被积函数f1cout << simpson(a, b, pf) << endl;// 求函数f1在(3,5)区间内的定积分pf = &f2;// 函数指针pf指向被积函数f2cout << simpson(a, b, pf) << endl;// 求函数f2在(3,5)区间内的定积分
2 0
- 指针函数 函数指针
- 函数指针/指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 指针函数,函数指针
- 函数指针,指针函数,
- 指针函数,函数指针
- 函数指针 指针函数
- 函数指针、指针函数
- 指针函数&函数指针
- 函数指针 指针函数
- 函数指针 指针函数
- 函数指针&指针函数
- 指针函数 函数指针
- 指针函数 &函数指针
- 函数指针&指针函数
- void指针 函数指针
- Intel Edision入门
- Cubietruck Plus 编译linaro-desktop-14.04卡启动固件和8192cu驱动步骤
- 模拟实现hashTable(哈希表)
- Kubernetes学习笔记(一)
- oj1901: 简单密码破解
- 函数指针
- 第26天(就业班) 餐馆王项目实战源码
- AM335X 串口驱动学习(1)-基于linux3.8内核
- javascript的typeof返回哪些数据类型
- 王学岗NDK环境的搭建
- ios--多线程
- VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别
- javascript event
- win10系统+jdk1.7(环境变量配置)+apache-tomcat-7.0.75(环境变量配置)