欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言 函數(shù)指針(指向函數(shù)的指針)詳解

 更新時間:2016年08月24日 09:02:26   投稿:lqh  
本文主要介紹 C語言函數(shù)指針的知識,這里整理了詳細的資料及示例代碼以便大家學(xué)習(xí)參考,有需要學(xué)習(xí)此部分知識的朋友可以參考下

一個函數(shù)總是占用一段連續(xù)的內(nèi)存區(qū)域,函數(shù)名在表達式中有時也會被轉(zhuǎn)換為該函數(shù)所在內(nèi)存區(qū)域的首地址,這和數(shù)組名非常類似。我們可以把函數(shù)的這個首地址(或稱入口地址)賦予一個指針變量,使指針變量指向函數(shù)所在的內(nèi)存區(qū)域,然后通過指針變量就可以找到并調(diào)用該函數(shù)。這種指針就是函數(shù)指針。

函數(shù)指針的定義形式為:

returnType (*pointerName)(param list);

returnType 為函數(shù)返回值類型,pointerNmae 為指針名稱,param list 為函數(shù)參數(shù)列表。參數(shù)列表中可以同時給出參數(shù)的類型和名稱,也可以只給出參數(shù)的類型,省略參數(shù)的名稱,這一點和函數(shù)原型非常類似。

注意( )的優(yōu)先級高于*,第一個括號不能省略,如果寫作returnType *pointerName(param list);就成了函數(shù)原型,它表明函數(shù)的返回值類型為returnType *。

【實例】用指針來實現(xiàn)對函數(shù)的調(diào)用。

#include <stdio.h>
//返回兩個數(shù)中較大的一個
int max(int a, int b){
 return a>b ? a : b;
}
int main(){
 int x, y, maxval;
 //定義函數(shù)指針
 int (*pmax)(int, int) = max; //也可以寫作int (*pmax)(int a, int b)
 printf("Input two numbers:");
 scanf("%d %d", &x, &y);
 maxval = (*pmax)(x, y);
 printf("Max value: %d\n", maxval);
 return 0;
}

運行結(jié)果:

Input two numbers:10 50↙
Max value: 50

第 14 行代碼對函數(shù)進行了調(diào)用。pmax 是一個函數(shù)指針,在前面加 * 就表示對它指向的函數(shù)進行調(diào)用。注意( )的優(yōu)先級高于*,第一個括號不能省略。

以上就是對 C語言函數(shù)指針的資料整理,后續(xù)繼續(xù)補充相關(guān)資料,謝謝大家對本站的支持!

相關(guān)文章

  • VS2019如何添加頭文件路徑的方法步驟

    VS2019如何添加頭文件路徑的方法步驟

    這篇文章主要介紹了VS2019如何添加頭文件路徑的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C語言堆棧幀的介紹與創(chuàng)建

    C語言堆棧幀的介紹與創(chuàng)建

    這篇文章主要給大家介紹了關(guān)于C語言堆棧幀的相關(guān)資料,堆棧幀 (stack frame)( 或活動記錄 (activation Tecord)) 是一塊堆棧保留區(qū)域,用于存放被傳遞的實際參數(shù)、子程序的返回值、局部變量以及被保存的寄存器,需要的朋友可以參考下
    2021-08-08
  • C語言函數(shù)語法詳解

    C語言函數(shù)語法詳解

    本文是小結(jié)了一下C語言的函數(shù)語法,詳細介紹了C語言函數(shù)語法的概述、函數(shù)的定義、函數(shù)的返回值、函數(shù)調(diào)用等7個方面的內(nèi)容,非常詳細,這里推薦給小伙伴們。
    2015-02-02
  • C++深入探究引用的使用

    C++深入探究引用的使用

    引用是C++一個很重要的特性,顧名思義是某一個變量或?qū)ο蟮膭e名,對引用的操作與對其所綁定的變量或?qū)ο蟮牟僮魍耆葍r,這篇文章主要給大家總結(jié)介紹了C++中引用的相關(guān)知識點,需要的朋友可以參考下
    2022-05-05
  • C++解密Chrome80版本數(shù)據(jù)庫的方法示例代碼

    C++解密Chrome80版本數(shù)據(jù)庫的方法示例代碼

    這篇文章主要介紹了C++解密Chrome80版本數(shù)據(jù)庫的方法示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • C++中臨時對象的常見產(chǎn)生情況及其解決的方案

    C++中臨時對象的常見產(chǎn)生情況及其解決的方案

    這篇文章主要是探討常見的臨時對象產(chǎn)生的情況,及其如何避免和解決這種臨時對象產(chǎn)生的方式。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C++ 動態(tài)創(chuàng)建按鈕及 按鈕的消息響應(yīng)

    C++ 動態(tài)創(chuàng)建按鈕及 按鈕的消息響應(yīng)

    這篇文章主要介紹了C++ 動態(tài)創(chuàng)建按鈕及 按鈕的消息響應(yīng)的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • 基于重啟后消失的注冊表鍵值的詳細介紹

    基于重啟后消失的注冊表鍵值的詳細介紹

    本篇文章是對重啟后消失的注冊表鍵值進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言實現(xiàn)階乘的示例詳解

    C語言實現(xiàn)階乘的示例詳解

    在現(xiàn)實中,我們做數(shù)學(xué)題總會遇到階乘問題,這在計算機中也不例外。 那我們應(yīng)該怎么實現(xiàn)呢?下面小編就為大家講解一下C語言中階乘的實現(xiàn)
    2022-07-07
  • 如何把C++的源代碼改寫成C代碼的方法

    如何把C++的源代碼改寫成C代碼的方法

    這篇文章主要介紹了如何把C++的源代碼改寫成C代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論