C++中函数指针调用详解:谭浩强教程实例

需积分: 10 13 下载量 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++语言本质的重要一步。谭浩强的课件会深入讲解这些概念,帮助学习者掌握这一核心技能。