您好,登錄后才能下訂單哦!
這篇文章主要講解了“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++中函數指針的介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。