首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C 語言函數指標:動態呼叫函數的關鍵技術

     編輯:C 語言基礎

函數在記憶體中佔用連續區域,函數名在表達式中轉換為該區域首地址(入口地址)。將此地址賦予指標變數,即可透過指標尋找並呼叫函數,這就是函數指標。

函數指標定義語法

回傳類型 (*指標名)(參數列表);
  • 參數列表可含參數名,也可僅含類型。
  • () 優先級高於 *,第一組括號不可省略,否則變成回傳指標的函數宣告。

基本範例:透過指標呼叫 max 函數

#include <stdio.h>

int max(int a, int b) {
    return a > b ? a : b;
}

int main() {
    int x, y, maxval;
    int (*pmax)(int, int) = max; // 也可寫 int (*pmax)(int a, int b)

    printf("Input two numbers: ");
    scanf("%d %d", &x, &y);
    maxval = (*pmax)(x, y); // 呼叫語法:*指標(實參)
    printf("Max value: %d\n", maxval);
    return 0;
}

關鍵點: (*pmax)(x, y) 中括號不可少,因 () 優先級高於 *。

進階應用場景

  • 回呼函數:如 qsort 比較函數參數。
  • 狀態機/命令模式:透過函數指標陣列實現動態分派。
  • 動態載入:dlopen/GetProcAddress 取得函數地址後轉型呼叫。

函數指標是 C 語言實現多態、事件驅動、插件架構的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved