C++ 函数指针常量
函数指针常量允许您将函数指针作为一个常量使用。这对于需要将函数指针传递给其他函数或存储在结构中的情况非常有用。
语法
const void (*func_ptr)(int);
在上面的例子中,func_ptr
是一个指向接受整数参数并且不返回任何值的函数的常量指针。
实战案例
假设您有一个函数可以比较两个整数并返回较大的那个。
int max(int a, int b) { if (a > b) { return a; } else { return b; } }
您可以使用函数指针常量将此函数传递给另一个函数,例如 find_max
函数,该函数查找数组中最大值:
#include <array> const void (*max_ptr)(int, int) = max; int find_max(const std::array<int, 10>& arr) { int max_value = arr[0]; for (size_t i = 1; i < arr.size(); ++i) { max_ptr(max_value, arr[i]); } return max_value; } int main() { const std::array<int, 10> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int result = find_max(arr); std::cout << "Maximum value: " << result << std::endl; return 0; }