指针函数和函数指针的例子
时间: 2023-10-21 19:15:41 浏览: 86
指针函数和函数指针都是指针类型,但它们的含义不同。指针函数是返回值为指针类型的函数,而函数指针是指向函数的指针。下面是两个例子:
例子1:指针函数
```c++
int* findMax(int* arr, int size) {
int* max = arr;
for (int i = 1; i < size; i++) {
if (*max < *(arr + i)) {
max = arr + i;
}
}
return max;
}
```
这是一个返回指向数组中最大元素的指针的函数。在函数中,使用了指针变量 max 来保存当前最大值的地址,然后遍历数组,比较数组中的每个值与当前最大值,如果当前值更大,则更新 max 的值。最终返回 max,即指向最大值的指针。
例子2:函数指针
```c++
#include <iostream>
using namespace std;
void printHello() {
cout << "Hello!" << endl;
}
void printGoodbye() {
cout << "Goodbye!" << endl;
}
void execute(void (*func)()) {
(*func)();
}
int main() {
void (*pf)() = &printHello;
execute(pf); // 输出 "Hello!"
pf = &printGoodbye;
execute(pf); // 输出 "Goodbye!"
return 0;
}
```
这是一个调用不同函数的函数 execute,它需要一个函数指针作为参数。在 main 函数中,定义了一个函数指针 pf,它先指向 printHello 函数,然后通过 execute 函数调用 pf 所指向的函数。接着,pf 又指向 printGoodbye 函数,再次通过 execute 调用 pf 所指向的函数。在 execute 函数中,使用 (*func)() 这样的语法来调用函数指针所指向的函数。
阅读全文