C++程式執行時,系統會替函數配置記憶體空間,用來儲存該函數程式碼。
當呼叫該函數時,程式流程即跳至此函數的起始位址,並從此位址開始執行函數。
因此,若是將函數指標指向該函數的起始位址,則在程式中,將可透過函數指標來呼叫該函數。

宣告函數指標格式如下:

回傳資料型態 (*函數指標名稱)(參數1 資料型態, 參數2 資料型態, ...);

下列為範例程式...


// =================================
// FileName: FuncPtr.cpp
// Author: Edison.Shih.

#include <iostream.h>

int Add_Num(int, int);
int Sub_Num(int, int);

// =================================
int main(int argc, char **argv)
{
      int x, y;
      int (*p_Func)(int, int); // 函數指標

      cout << "input x:";
      cin >> x;

      cout << "input y:";
      cin >> y;

      p_Func = Add_Num;
      cout << "x+y=" << (*p_Func)(x,y) << endl;

      p_Func = Sub_Num;
      cout << "x-y=" << (*p_Func)(x,y) << endl;
      return 0;
}

// =================================
int Add_Num(int a, int b) {return (a+b);}
int Sub_Num(int a, int b) {return (a-b);}

// =================================

輸出結果如下所示:

input x:3
input y:4
x+y=7
x-y=-1

arrow
arrow
    全站熱搜

    Edison 發表在 痞客邦 留言(0) 人氣()