這篇文章主要講解了“c++中函數指針的介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“c++中函數指針的介紹”吧!

指向函數的指針:
一個函數在編譯時被分配一個入口地址,這個函數的入口地址被稱為函數的指針。
與數組名代表數組首元素地址類型,函數名代表該函數的入口地址。
定義形式如下:
數據類型 (*指針變量名)(函數參數列表)
注意:
1.int (*p)(int ,int ) 表示定義一個指向函數的指針變量p,它不是固定指向哪一個函數,而只是表示定義了這樣一個類型的變量,它是專門來存放函數的入口地址的,在程序中把哪一個函數(該函數的值是整型的,且有兩個整型參數)的地址賦給它,它就指向哪一個函數。在一個程序中,一個指針變量可以先后指向同類型的不同函數。
2.給函數指針變量賦值時,只需要給出函數名,不需要給出參數
如p=max;
3.用函數指針調用函數時,只需要將(*p)代替函數名即可,在(*p)之后的括號中根據需要寫上實參。
如:c=(*p)(a,b)
4.對函數指針變量進行p+n,p++,p--等運算是無意義的
代碼例子:
// CppTest.cpp : 定義控制臺應用程序的入口點。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int max(int x,int y);
int min(int x,int y);
int sub(int x,int y);
int call(int x,int y,int (*p)(int x,int y));
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"max:"<<call(5,10,max)<<endl;
cout<<"min:"<<call(5,10,min)<<endl;
cout<<"sub:"<<call(5,10,sub)<<endl;
//cout<<"----------------------------"<<endl;
//int (*p)(int ,int);
//p=max;
//cout<<"max:"<<(*p)(5,10)<<endl;
//p=min;
//cout<<"min:"<<(*p)(5,10)<<endl;
//p=sub;
//cout<<"sub:"<<(*p)(5,10)<<endl;
return 0;
}
int max(int x, int y)
{
if (x>y)
{
return x;
}
return y;
}
int min(int x, int y)
{
if (x>y)
{
return y;
}
return x;
}
int sub(int x, int y)
{
return x+y;
}
int call(int x,int y,int (*p)(int x,int y))
{
return (*p)(x,y);
}打印結果如下:
感謝各位的閱讀,以上就是“c++中函數指針的介紹”的內容了,經過本文的學習后,相信大家對c++中函數指針的介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯網站建設公司,,小編將為大家推送更多相關知識點的文章,歡迎關注!
本文標題:c++中函數指針的介紹-創新互聯
本文路徑:http://www.yijiale78.com/article4/pccoe.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、外貿建站、搜索引擎優化、網站排名、企業建站、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯