在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

函數指針和指針函數是不是一個東西?

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-01-03 16:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

函數指針和指針函數是不是一個東西?

這兩個我們之前都有講過,但是并沒有放在一起比較過。

函數指針的本質是指針,就跟整型指針、字符指針一樣,函數指針指向的是一個函數。

每個函數在內存中都會有一個地址,函數調用就是跳轉到這個地址開始執行,而函數指針就是記錄這個地址的變量。

026f24e4-aa13-11ee-8b88-92fbcf53809c.png ?

定義起來稍微有點麻煩:

#include 


inttest(inta)
{
    return a;
}


int main()
{
    int (*p)(int) = test;
    
    return 0;
}
比如test函數,想要記錄他的地址,可以這樣定義指針p:
int (*p)(int) = test;
p是個指針,指向函數,函數有一個int類型的參數,函數的返回值是int。

調用函數的時候,不僅可以通過函數名來調用,也可以通過函數指針p來調用:
test(1);


p(1);
函數指針有什么用?

他的用處很大,比如C語言里面的回調函數,或者在結構體里面存放函數,都可以用函數指針來解決,不清楚的,可以翻翻以前的視頻。

指針函數的本質是函數,就像整型函數返回的是整型一樣,指針函數返回的是指針。

于是我們可以隨手寫一個數組,返回數組的名字,因為數組名就是地址。
int *test()
{
    int array[5] = {0};
    
    return array;
}
這是一個典型的錯誤,切記不能返回局部變量的地址,因為函數調用完畢,內存釋放,即使返回了這個地址,也不能使用。

可以返回堆空間地址,也可以返回全局變量地址,或者是靜態變量地址都可以,這種返回地址的函數就叫指針函數。

那把這兩個概念結合起來會怎么樣?

可以,就叫指針函數指針:
int *(*p)() = test;
意思就是定義一個指針,讓他指向剛才的指針函數,這就是C語言中的復雜類型聲明,開發中確實很少會用到,但是筆試中出現的概率高達80%,所以,不要覺得它沒用,想要學好C語言,務必得學會分析。








審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數指針
    +關注

    關注

    2

    文章

    57

    瀏覽量

    3961
  • 指針函數
    +關注

    關注

    0

    文章

    10

    瀏覽量

    2874

原文標題:兩分鐘來搞懂函數指針和指針函數

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    函數指針的使用簡述

    函數指針在Linux內核和C語言開發中用的非常多,而且在設計操作系統的時候也會用到,因此這里將詳細講解函數指針。既然函數
    的頭像 發表于 09-09 08:56 ?2257次閱讀
    <b class='flag-5'>函數</b><b class='flag-5'>指針</b>的使用簡述

    函數指針指針函數的概念

    不少朋友會混淆“函數指針”和“指針函數”這兩概念,本文詳細介紹下。
    發表于 03-09 10:49 ?1430次閱讀

    文詳解函數指針與回調函數

    函數指針是指向函數指針變量。它允許我們將函數作為參數傳遞給其他函數或將
    發表于 08-22 10:36 ?695次閱讀

    指針作為函數參數

    指針作為函數參數 大多數C程序員開始使用指針時是用它們實現函數的參數,所謂可變參數。為了理解可變參數是如何工作的,我們看看在C語言中如何執行
    發表于 07-29 11:49 ?2818次閱讀

    函數指針指針函數定義

    函數指針指針函數,C語言學習中最容易混淆的些概念,好好學習吧
    發表于 01-11 16:44 ?0次下載

    C語言指針函數函數指針詳細介紹

    C語言指針函數函數指針詳細介紹。。。。。。。
    發表于 03-04 15:27 ?5次下載

    c語言函數指針定義,指針函數函數指針的區別

     往往,我們提到指針函數函數指針的時候,就有很多人弄不懂。下面就由小編詳細為大家介紹C語言中函數
    發表于 11-16 15:18 ?3860次閱讀

    ARM的函數指針、指針函數的區別和用法

    在學習arm過程中發現這“指針函數”與“函數指針”容易搞錯,所以今天,我自己想次把它搞清楚,找了
    的頭像 發表于 06-20 10:08 ?3755次閱讀

    理解函數指針、函數指針數組、函數指針數組的指針

    理解函數指針、函數指針數組、函數指針數組的指針
    的頭像 發表于 06-29 15:38 ?1.5w次閱讀
    理解<b class='flag-5'>函數</b><b class='flag-5'>指針</b>、<b class='flag-5'>函數</b><b class='flag-5'>指針</b>數組、<b class='flag-5'>函數</b><b class='flag-5'>指針</b>數組的<b class='flag-5'>指針</b>

    C語言-內聯函數、遞歸函數、指針函數

    這篇文章介紹C語言的內聯函數、遞歸函數、函數指針指針函數、局部地址、const關鍵字、exte
    的頭像 發表于 08-14 10:03 ?1969次閱讀

    指針進階第五站:函數指針!

    定義函數指針,指向的函數有兩int形參并且返回
    發表于 08-17 15:58 ?657次閱讀

    如何使用函數指針

    在程序中定義函數,則編譯時系統就會為這段代碼分配段存儲空間,這段存儲空間的首地址稱為函數的地址,且
    的頭像 發表于 03-30 15:09 ?1079次閱讀

    函數指針的基本概念和語法

    函數指針種非常強大的編程工具,它可以讓我們以更加靈活的方式編寫程序。在本文中,我們將介紹 8 函數
    的頭像 發表于 12-12 09:33 ?688次閱讀

    函數指針與回調函數的應用實例

    通常我們說的指針變量是指向整型、字符型或數組等變量,而函數指針是指向函數。
    的頭像 發表于 03-07 11:13 ?593次閱讀
    <b class='flag-5'>函數</b><b class='flag-5'>指針</b>與回調<b class='flag-5'>函數</b>的應用實例

    面試???1:函數指針指針函數、數組指針指針數組

    在嵌入式開發領域,函數指針指針函數、數組指針指針數組是
    的頭像 發表于 08-10 08:11 ?1421次閱讀
    面試???1:<b class='flag-5'>函數</b><b class='flag-5'>指針</b>與<b class='flag-5'>指針</b><b class='flag-5'>函數</b>、數組<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>數組
    主站蜘蛛池模板: 午夜免费片 | 插插插操操操 | 亚洲成熟| 国产网站在线播放 | 亚洲精品你懂的 | 午夜理伦片免费 | 国内黄色一级片 | 久久香蕉综合色一综合色88 | 久久综合九色综合欧洲色 | 亚洲午夜久久久久久91 | 女人aaaaa片一级一毛片 | 国产哺乳期奶水avav | 1区2区3区4区 | a毛片免费观看完整 | 91福利国产在线观看网站 | 人人爱爱人人 | 国产在线欧美精品卡通动漫 | 一级骚片超级骚在线观看 | 四虎精品免费永久在线 | 欧美片欧美日韩国产综合片 | 国产男人搡女人免费视频 | 日本成本人三级在线观看2018 | 伊人男人天堂 | 婷婷综合久久中文字幕蜜桃三 | 免费看男女做好爽好硬视频 | 免费人成年短视频在线观看免费网站 | 亚洲欧美v视色一区二区 | 久久精品国产99国产精品免费看 | 永久在线观看视频 | 天天看片中文字幕 | 无毒不卡 | 久久婷婷六月 | 国产在线观看黄色 | 欧美午夜影院 | 日日做日日摸夜夜爽 | 国产色视频网站免费观看 | 天堂资源在线 | 天天舔天天干天天操 | 国产一级做a爰大片免费久久 | 在线观看永久免费 | 日本免费色|