C 中的函數指標是指向函數的變量,允許將函數作為參數傳遞。使用函數指標可以透過定義它們,將函數名稱或 lambda 表達式賦給它們,並像呼叫普通函數一樣呼叫它們。函數指標廣泛應用於函數器,如排序函數器,允許在運行時建立和使用排序函數。
函數指標是一種指向函數的變數。它提供了將函數作為參數傳遞的能力,並在運行時調用函數的靈活性。
在C 中,函數指標可以如下定義:
returntype (*function_ptr_name)(param_type1, param_type2, ...);
例如,定義一個指向接受兩個整數參數並傳回整數的函數的指標:
int (*add_pointer)(int, int);
可以透過將函數名稱賦給函數指標來初始化它:
add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数
或者,可以使用lambda 表達式建立函數指標:
add_pointer = [](int a, int b) -> int { return a + b; };
可以像呼叫普通函數一樣呼叫函數指標:
int result = add_pointer(10, 20);
函數指標的一個常見應用是函數器,它允許在運行時創建和使用排序函數。例如,以下程式碼使用函數指標實作帶有比較函數的 std::sort
:
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> numbers = {3, 1, 5, 2, 4}; // 定义比较函数指针 int (*compare_func)(int, int) = [](int a, int b) -> bool { return a < b; }; // 使用函数指针排序 std::sort(numbers.begin(), numbers.end(), compare_func); // 输出排序后的结果 for (const auto& number : numbers) { std::cout << number << ' '; } return 0; }
以上是C++ 中函數指標的定義與用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!