C++中函数指针调用详解:谭浩强教程实例
需积分: 10 27 浏览量
更新于2024-08-18
收藏 8.66MB PPT 举报
在C++编程中,理解如何使用指向函数的指针变量调用函数是非常重要的技能。谭浩强的经典C++课件对此有深入的讲解。首先,我们来看一个简单的例子:
```cpp
// 定义两个函数
int max(int x, int y) {
return x > y ? x : y;
}
void main(void) {
int a, b, c;
cin >> a >> b;
c = max(a, b); // 直接调用函数
cout << c << endl;
}
// 接下来,通过指针实现
void main(void) {
int max(int, int); // 注意这里的函数声明,但不需要定义
int (*p)(int, int); // 定义指向函数的指针变量,* 表示指针
p = &max; // 给指针变量赋值,& 表示取函数地址
cin >> a >> b;
c = (*p)(a, b); // 通过指针调用函数,(*) 解引用操作
cout << c << endl;
}
```
在这个过程中,主要知识点包括:
1. 定义指向函数的指针变量:`int (*p)(int, int)` 定义了一个指向 `int` 类型接受两个 `int` 参数并返回 `int` 值的函数的指针。`*` 符号表示指针类型,`()` 表示函数调用。
2. 给指针变量赋值:`p = &max;` 这里将 `max` 函数的地址赋给 `p`,`&` 是取地址运算符。
3. 通过指针调用函数:`c = (*p)(a, b);` 在这里,`(*p)` 是对 `p` 指向的函数进行解引用,然后传入参数 `a` 和 `b`,实际上是调用了 `max(a, b)`。
4. 调用方式的对比:传统的函数调用是直接通过函数名(如 `c = max(a, b);`),而通过指针调用则是间接的,通过指针指向的函数地址(如 `c = (*p)(a, b);`)。
5. C++语言的优势:C++语言结合了高级语言的易读性和低级语言的性能,支持结构化编程,具有良好的可移植性和一定的灵活性,但也意味着可能需要更高的编程技巧来处理。
6. C++的发展与特性:C++是在C语言基础上发展起来的,它继承了C语言的优点,如简洁、高效和强大的运算符,同时引入了面向对象编程的概念,使得程序设计更为复杂且强大。
理解如何使用指向函数的指针变量是C++编程中提升代码复用性和灵活性的关键技巧之一,同时也是深入理解C++语言本质的重要一步。谭浩强的课件会深入讲解这些概念,帮助学习者掌握这一核心技能。
2011-05-20 上传
2010-10-28 上传
2010-01-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
getsentry
- 粉丝: 28
- 资源: 2万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫