A function pointer is a pointer to a function, used to implement callbacks, anonymous functions and generic programming. Syntax: returnType (*functionName)(parameterList). To use: Declare a pointer to the desired function type and use the function pointer like any other pointer. Practical case: Implement a sorting function and pass a comparison function to customize the comparison logic.
Guidelines for the use of C function pointers
Introduction
The function pointer is a A special type of pointer that points to a function. In C, function pointers are mainly used to implement callback functions, anonymous functions and generic programming.
Syntax
The syntax of a function pointer is as follows:
returnType (*functionName)(parameterList);
Among them:
returnType
Is the return type of the function pointed to by the pointer. functionName
is the name of the function pointer. parameterList
is the parameter list of the function pointed to by the pointer. Usage
To use a function pointer, you need to first declare a function pointer pointing to the desired function type. For example:
int add(int a, int b) { return a + b; } int (*sumFunction)(int, int); // 声明一个指向 add 函数的函数指针
Then, function pointers can be used like other pointers. For example:
// 将 sumFunction 指向 add 函数 sumFunction = &add; // 调用 sumFunction int result = sumFunction(10, 20); // result 将等于 30
Practical case
Scenario: Implement a sorting function that allows passing a comparison function to customize the comparison logic
#include <algorithm> #include <vector> // 比较函数 bool compare(int a, int b) { return a > b; } // 排序函数,接受一个比较函数 void sortDescending(std::vector<int>& numbers, bool (*compareFunction)(int, int)) { std::sort(numbers.begin(), numbers.end(), compareFunction); } int main() { std::vector<int> numbers = {1, 5, 3, 2, 4}; // 使用比较函数排序数组 sortDescending(numbers, compare); // 输出排序后的数组 for (int number : numbers) { std::cout << number << " "; } return 0; }
In this practical case, the compare
function pointer is passed to the sortDescending
function. sortDescending
Function sorts vectors using comparison functions. Therefore, the output will be the vector elements sorted in descending order: 5 4 3 2 1
.
The above is the detailed content of How to use function pointers in C++?. For more information, please follow other related articles on the PHP Chinese website!