函數指針的應用
阿新 • • 發佈:2017-08-18
初始化 typedef col bsp names () return pan 函數指針
#include <iostream> #include <string> using namespace std; void print() { cout << "hello world" << endl; } int max(int num1,int num2) { return num1>num2?num1:num2; } //(二)使用typedef更直觀更方便。 //形式2:typedef 返回類型(*新類型)(參數表) typedef int (*PFUN_t) (int,int); //定義了一種新的類型,並定義這種類型為指向函數的指針//函數指針作為參數,並在函數內執行函數 void excu_pfun(PFUN_t t_pfun,int num1,int num2) { cout << (*t_pfun) (num1,num2) << endl; //out:max } int main() { //(一)簡單的函數指針的應用。 //形式1:返回類型(*函數名)(參數表) //例如: int (*pfun) (in,int); void (*pfun) () = NULL; //定義了一個void函數指針,初始指向NULL pfun = print; //print函數名就是該函數的地址,將該函數地址賦給pfun函數指針(*pfun) (); //也是用*取出函數指針指向的內容,執行函數print() int (*pfun1) (int,int); //定義一個int函數指針,不初始化 pfun1 = max; //第一種賦值方式,使用函數名賦值:函數指針pfun1指向max函數 //pfun1 = &max; //第二種賦值方式,使用函數的地址賦值,本質2種方法一樣 cout << (*pfun1) (2,3) << endl; //out: 3 PFUN_t pfun2; //使用新的函數指針類型,定義函數指針pfun2 pfun2 = max; //賦值:函數指針pfun2指向max函數 cout << (*pfun2) (4,5) << endl; //out: 5 //max函數指針作為參數,並在函數內執行max函數 excu_pfun(max,6,7); //out:7 }
函數指針的應用