最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++指向函數(shù)的指針用法詳解

 更新時(shí)間:2014年09月02日 16:35:30   投稿:shichen2014  
這篇文章主要介紹了C++指向函數(shù)的指針用法,對(duì)函數(shù)指針的聲明、優(yōu)先級(jí)、指針類型等概念做了較為詳盡的分析,需要的朋友可以參考下

本文以實(shí)例形式展示了C++指向函數(shù)的指針用法,是深入學(xué)習(xí)C++所必須掌握的關(guān)鍵知識(shí)點(diǎn)。分享給大家供大家參考之用。具體方法如下:

函數(shù)指針

現(xiàn)來看看以下聲明語句,看看其含義:

float (*h(int, void (*)(int)))(int); 

以下是一個(gè)變量指針的定義語句:

float* pf; 

以下是一個(gè)普通函數(shù)的聲明語句:

float f(); 

請(qǐng)看以下聲明語句:

float* g(); 

因?yàn)?)的優(yōu)先級(jí)高于*, 所以相當(dāng)于:

float* (g()); 

g是一個(gè)函數(shù), 返回值為float*, 參數(shù)為void

float (*h)(); 

中, h是個(gè)指針, 指向一個(gè)返回值為float的函數(shù).
去掉h, 就是h的類型:

float (*)(); 

若要調(diào)用h所指的函數(shù), 解引用這個(gè)指針即可:

(*h)(); 

它的縮寫為(注意, 僅僅是縮寫):h();
注意不能將(*h)兩邊的括號(hào)去掉, 去掉后,*h()等價(jià)于*(h()). ANSI C會(huì)把它認(rèn)為是以下語句的縮寫:

*((*h)()); 

上面的語句表示: 執(zhí)行h所指向的函數(shù), 然后解引用函數(shù)的返回值.
若h指向的函數(shù)有參數(shù), 參數(shù)是指向函數(shù)的指針呢? 假設(shè)該參數(shù)的類型為: void (*)(int), 則h可以聲明為:

float (*h)(void(*)(int)); 

已知有以下函數(shù)的聲明:

float func(int); 

若要使h指向函數(shù)func, 只需要將(*h)替換func即可:

float (*h)(int); 

更進(jìn)一步, h所指的函數(shù)不返回float, 而是返回指向函數(shù)的指針呢? 該指針的類型為float(*)(int).

float (*h(parameter))(int); 

其中parameter為h所指函數(shù)的參數(shù), 假設(shè)參數(shù)類型有兩個(gè), 一個(gè)為int型, 一個(gè)類型為: void (*)(int), 則最終的結(jié)果為:

float (*h(int, void (*)(int)))(int); 

希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C語言實(shí)現(xiàn)兩個(gè)變量值交換的三種方式

    C語言實(shí)現(xiàn)兩個(gè)變量值交換的三種方式

    兩個(gè)變量值的交換是編程中最常見的問題之一,以下將介紹三種變量的交換方式,其中第一種方式是最常用也是最實(shí)用的,后兩種方式一般只在特殊限制下使用,需要的朋友可以參考下
    2025-03-03
  • 淺談C語言的字符串分割

    淺談C語言的字符串分割

    下面小編就為大家?guī)硪黄獪\談C語言的字符串分割。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • Qt QThreadPool線程池的實(shí)現(xiàn)

    Qt QThreadPool線程池的實(shí)現(xiàn)

    QThreadPool管理和重新設(shè)計(jì)單個(gè)QThread對(duì)象,以幫助降低使用線程的程序中的線程創(chuàng)建成本,本文主要介紹了Qt QThreadPool線程池的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2007-03-03
  • C++?Qt開發(fā)之運(yùn)用QJSON模塊解析數(shù)據(jù)

    C++?Qt開發(fā)之運(yùn)用QJSON模塊解析數(shù)據(jù)

    JSON(JavaScript?Object?Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它易于人閱讀和編寫,也易于機(jī)器解析和生成,本文主要介紹了Qt如何運(yùn)用QJson組件的實(shí)現(xiàn)對(duì)JSON文本的靈活解析功能,需要的可以參考下
    2024-01-01
  • C++ 使用VS Code運(yùn)行程序時(shí)終端輸出中文亂碼的解決辦法

    C++ 使用VS Code運(yùn)行程序時(shí)終端輸出中文亂碼的解決辦法

    這篇文章主要介紹了C++ 使用VS Code運(yùn)行程序時(shí)終端輸出中文亂碼的解決辦法 ,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 如何通過wrap malloc定位C/C++的內(nèi)存泄漏問題

    如何通過wrap malloc定位C/C++的內(nèi)存泄漏問題

    用C/C++開發(fā)的程序執(zhí)行效率很高,但卻經(jīng)常受到內(nèi)存泄漏的困擾。本文提供一種通過wrap malloc查找memory leak的思路。
    2021-05-05
  • C語言實(shí)現(xiàn)大數(shù)值金額大寫轉(zhuǎn)換的方法詳解

    C語言實(shí)現(xiàn)大數(shù)值金額大寫轉(zhuǎn)換的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)大數(shù)值金額大寫轉(zhuǎn)換的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • 淺談c++ 預(yù)處理器

    淺談c++ 預(yù)處理器

    這篇文章主要介紹了c++ 預(yù)處理器的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • VScode配置C語言環(huán)境完整版(親測(cè)可用)

    VScode配置C語言環(huán)境完整版(親測(cè)可用)

    這篇文章主要介紹了VScode配置C語言環(huán)境完整版,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • C++ vector使用的一些注意事項(xiàng)

    C++ vector使用的一些注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于C++ vector使用的一些注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論

无极县| 新安县| 吉木萨尔县| 沅陵县| 嘉兴市| 界首市| 深水埗区| 临泉县| 宝坻区| 滨海县| 咸阳市| 彩票| 新蔡县| 淮阳县| 临泽县| 沅陵县| 都昌县| 正阳县| 长子县| 宝山区| 西平县| 宣武区| 弥勒县| 常熟市| 德江县| 黄平县| 翁源县| 洪洞县| 丰原市| 扶绥县| 任丘市| 荣成市| 遂宁市| 营山县| 太原市| 吉木萨尔县| 修水县| 湛江市| 萨嘎县| 武威市| 翁牛特旗|