程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 函數指針的用法

函數指針的用法

編輯:C++入門知識

指針不僅可以用來指向基本類型的數據,還可以指向函數。如果我們有了函數指針,這樣就可以將其作為參數傳遞給其它函數。其應用之一是回調函數。   函數指針的聲明原型(Declaration Prototype) typename (*pointer_name)(parameters...)   既然指針是指向一個具體函數的,那麼假設有一個簡單的加法函數: [cpp]  int add(int a, int b)   {       return a + b;   }     該函數很簡單,接受兩個整形參數,然後返回兩個整數之和。   下面聲明一個函數指針:   [cpp]   int (*foo)(int,int);     簡單點來說,該聲明和函數聲明基本類似,只不過函數名前需要加上星號(*),並帶上括號。另外需要注意的是,該函數指針聲明的返回類型以及參數個數和參數類型要一一對應,函數指針名只要為合法的標識符即可,這裡為foo。   下面初始化函數指針: [cpp]  foo = add;   //或者   foo = &add;     使用指針函數: [cpp]  //普通函數調用   printf("%d \n",add(1,2));   //通過指針函數調用   printf("%d \n",foo(1,2));   //或者   printf("%d \n",(*foo)(1,2));       將函數指針變量作為參數傳遞給另外一個函數。 [cpp]  #include <stdio.h>      void pay()   {       printf("paying 1$\n");   }      void got(void(*func_p_para)(),char * goods)   {       func_p_para();  //調用       printf("buy %s",goods);   }      int main()   {       void (*foo)();       foo = pay;          got(foo,"1T Memmory");   }     Over...  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved