c++ 函數(shù)指針相關(guān)總結(jié)
下面隨筆說明函數(shù)指針用法。
函數(shù)指針的定義:
定義形式:
存儲(chǔ)類型 數(shù)據(jù)類型 (*函數(shù)指針名)()
含義:
函數(shù)指針指向的是程序代碼存儲(chǔ)區(qū)
函數(shù)指針的典型用途-----實(shí)現(xiàn)函數(shù)回調(diào)
通過函數(shù)指針調(diào)用的函數(shù)
例如將函數(shù)的指針作為參數(shù)傳遞給一個(gè)函數(shù),使得在處理相似事件的時(shí)候可以靈活的使用不同的方法。
調(diào)用者不關(guān)心誰是調(diào)用者
需知道存在一個(gè)具有特定原型和限制條件的被調(diào)用函數(shù)。
獲取函數(shù)指針:
函數(shù)的地址就是函數(shù)名,要將函數(shù)作為參數(shù)進(jìn)行傳遞,必須傳遞函數(shù)名。
聲明函數(shù)指針
聲明指針時(shí),必須指定指針指向的數(shù)據(jù)類型,同樣,聲明指向函數(shù)的指針時(shí),必須指定指針指向的函數(shù)類型,這意味著聲明應(yīng)當(dāng)指定函數(shù)的返回類型以及函數(shù)的參數(shù)列表。
例如:
double cal(int); // prototype double (*pf)(int); // 指針pf指向的函數(shù), 輸入?yún)?shù)為int,返回值為double pf = cal; // 指針賦值
如果將指針作為函數(shù)的參數(shù)傳遞:
void estimate(int lines, double (*pf)(int)); // 函數(shù)指針作為參數(shù)傳遞
函數(shù)指針舉例
#include <iostream>
using namespace std;
int compute(int a, int b, int(* func)(int, int))
{
return func(a, b);
}
int max(int a, int b) //求最大值
{
return ((a > b) ? a : b);
}
int min(int a, int b) //求最小值
{
return ((a < b) ? a : b);
}
int sum(int a, int b) //求和
{
return (a + b);
}
int main(void)
{
int a, b, res;
cout << "please input integer a:";
cin >> a;
cout << "please input integer b:";
cin >> b;
res = compute(a, b, &max); //輸入max也可以,max也是表示地址
res = compute(a, b, &min); //輸入min也可以,min也是表示地址
res = compute(a, b, &sum); //輸入sum也可以,sum也是表示地址
return 0;
}
以上就是c++ 函數(shù)指針相關(guān)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于c++ 函數(shù)指針的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++ string字符串的使用和簡(jiǎn)單模擬實(shí)現(xiàn)
C語言中,字符串是以'\0'結(jié)尾的一些字符的集合,為了操作方便,C標(biāo)準(zhǔn)庫(kù)中提供了一些str系列的庫(kù)函數(shù),但是這些庫(kù)函數(shù)和字符串是分離的,本文給大家介紹了C++ string字符串的使用和簡(jiǎn)單模擬實(shí)現(xiàn),感興趣的朋友可以參考下2024-06-06
詳解C++設(shè)計(jì)模式編程中對(duì)狀態(tài)模式的運(yùn)用
這篇文章主要介紹了C++設(shè)計(jì)模式編程中對(duì)狀態(tài)模式的運(yùn)用,狀態(tài)模式允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為,對(duì)象看起來似乎修改了它的類,需要的朋友可以參考下2016-03-03
Cocos2d-x UI開發(fā)之CCControlPotentiometer控件類使用實(shí)例
這篇文章主要介紹了Cocos2d-x UI開發(fā)之CCControlPotentiometer控件類使用實(shí)例,本文代碼中包含注釋來講解CCControlPotentiometer控件類的使用,需要的朋友可以參考下2014-09-09
Visual Studio Code配置C/C++開發(fā)環(huán)境的教程圖解
這篇文章主要介紹了Visual Studio Code配置C/C++開發(fā)環(huán)境的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
C++實(shí)現(xiàn)寢室衛(wèi)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)寢室衛(wèi)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C語言結(jié)構(gòu)及隊(duì)列實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了C語言實(shí)現(xiàn)隊(duì)列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

