淺析C++中的函數(shù)與指針
用函數(shù)指針變量調(diào)用函數(shù)
指針變量也可以指向一個函數(shù)。一個函數(shù)在編譯時被分配給一個入口地址。這個函數(shù)入口地址就稱為函數(shù)的指針??梢杂靡粋€指針變量指向函數(shù),然后通過該指針變量調(diào)用此函數(shù)。
例 求a和b中的大者。
先按一般方法寫程序:
#include <iostream>
using namespace std;
int main()
{
  int max(int x,int y); //函數(shù)聲明
  int a,b,m;
  cin>>a>>b;
  m=max(a,b); //調(diào)用函數(shù)max,求出最大值,賦給m
  cout<<"max="<<m<<endl;
  return 0;
}
int max(int x,int y)
{
  int z;
  if(x>y) z=x;
  else z=y;
  return(z);
}
可以用一個指針變量指向max函數(shù),然后通過該指針變量調(diào)用此函數(shù)。定義指向max函數(shù)的指針變量的方法是:
請將它和函數(shù)max的原型作比較:
int max(int, int); //max函數(shù)原型
可以看出: 只是用(*p)取代了max,其他都一樣?,F(xiàn)在將上面程序的主函數(shù)修改如下:
#include <iostream>
using namespace std;
int main( )
{
  int max(int x,int y); //函數(shù)聲明
  int (*p)(int,int); //定義指向函數(shù)的指針變量p
  int a,b,m;
  p=max; //使p指向函數(shù)max
  cin>>a>>b;
  m=p(a,b);
  cout<<″max=″<<m<<endl;
  return 0;
}
請注意第7行的賦值語句“p=max;”。此語句千萬不要漏寫,它的作用是將函數(shù)max的入口地址賦給指針變量p。這時,p才指向函數(shù)max。
指向函數(shù)的指針變量的一般定義形式為:
    函數(shù)類型  (*指針變量名)(函數(shù)形參表);
C++返回指針值的函數(shù)
一個函數(shù)可以帶回一個整型值、字符值、實(shí)型值等,也可以帶回指針型的數(shù)據(jù),即地址。其概念與以前類似,只是帶回的值的類型是指針類型而已。返回指針值的函數(shù)簡稱為指針函數(shù)。
定義指針函數(shù)的一般形式為:
    類型名 *函數(shù)名(參數(shù)表列);
例如:
int *a(int x, int y);
上一篇:深入學(xué)習(xí)C++中的函數(shù)概念
欄 目:C語言
下一篇:C++函數(shù)的嵌套調(diào)用和遞歸調(diào)用學(xué)習(xí)教程
本文標(biāo)題:淺析C++中的函數(shù)與指針
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/2735.html
您可能感興趣的文章
- 04-02c語言沒有round函數(shù) round c語言
 - 01-10深入理解C++中常見的關(guān)鍵字含義
 - 01-10使用C++實(shí)現(xiàn)全排列算法的方法詳解
 - 01-10深入Main函數(shù)中的參數(shù)argc,argv的使用詳解
 - 01-10c++中inline的用法分析
 - 01-10如何尋找數(shù)組中的第二大數(shù)
 - 01-10用C++實(shí)現(xiàn)DBSCAN聚類算法
 - 01-10全排列算法的非遞歸實(shí)現(xiàn)與遞歸實(shí)現(xiàn)的方法(C++)
 - 01-10C++大數(shù)模板(推薦)
 - 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解
 


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段
 - 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
 
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 - 01-10C#中split用法實(shí)例總結(jié)
 - 01-10delphi制作wav文件的方法
 - 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
 - 04-02jquery與jsp,用jquery
 - 01-11ajax實(shí)現(xiàn)頁面的局部加載
 - 01-10使用C語言求解撲克牌的順子及n個骰子
 - 08-05織夢dedecms什么時候用欄目交叉功能?
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 


