91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

函數(shù)指針和指針函數(shù)是不是一個東西?

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

掃碼添加小助手

加入工程師交流群

函數(shù)指針和指針函數(shù)是不是一個東西?

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

函數(shù)指針的本質(zhì)是指針,就跟整型指針、字符指針一樣,函數(shù)指針指向的是一個函數(shù)。

每個函數(shù)在內(nèi)存中都會有一個地址,函數(shù)調(diào)用就是跳轉(zhuǎn)到這個地址開始執(zhí)行,而函數(shù)指針就是記錄這個地址的變量。

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

定義起來稍微有點麻煩:

#include 


inttest(inta)
{
    return a;
}


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

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


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

他的用處很大,比如C語言里面的回調(diào)函數(shù),或者在結(jié)構(gòu)體里面存放函數(shù),都可以用函數(shù)指針來解決,不清楚的,可以翻翻以前的視頻。

指針函數(shù)的本質(zhì)是函數(shù),就像整型函數(shù)返回的是整型一樣,指針函數(shù)返回的是指針。

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

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

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

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








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

    關(guān)注

    2

    文章

    57

    瀏覽量

    4151
  • 指針函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2969

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    函數(shù)指針的使用簡述

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

    函數(shù)指針指針函數(shù)的概念

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

    文詳解函數(shù)指針與回調(diào)函數(shù)

    函數(shù)指針是指向函數(shù)指針變量。它允許我們將函數(shù)作為參數(shù)傳遞給其他函數(shù)或?qū)?/div>
    發(fā)表于 08-22 10:36 ?993次閱讀

    指針作為函數(shù)參數(shù)

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

    函數(shù)指針指針函數(shù)定義

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

    C語言指針函數(shù)函數(shù)指針詳細介紹

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

    c語言函數(shù)指針定義,指針函數(shù)函數(shù)指針的區(qū)別

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

    ARM的函數(shù)指針、指針函數(shù)的區(qū)別和用法

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

    理解函數(shù)指針函數(shù)指針數(shù)組、函數(shù)指針數(shù)組的指針

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

    求求你,不要再糾結(jié)指針了(2)——函數(shù)指針

    如果說指針些人心中是導致代碼“極其不穩(wěn)定的奇技淫巧”,那么“函數(shù)指針”則是導致代碼跑飛和艱澀難懂的罪魁禍首。然而,函數(shù)
    發(fā)表于 01-26 19:51 ?2次下載
    求求你,不要再糾結(jié)<b class='flag-5'>指針</b>了(2)——<b class='flag-5'>函數(shù)</b><b class='flag-5'>指針</b>

    指針進階第五站:函數(shù)指針!

    定義函數(shù)指針,指向的函數(shù)有兩int形參并且返回
    發(fā)表于 08-17 15:58 ?2070次閱讀

    如何使用函數(shù)指針?

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

    函數(shù)指針的基本概念和語法

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

    函數(shù)指針與回調(diào)函數(shù)的應(yīng)用實例

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

    面試???1:函數(shù)指針指針函數(shù)、數(shù)組指針指針數(shù)組

    在嵌入式開發(fā)領(lǐng)域,函數(shù)指針、指針函數(shù)、數(shù)組指針指針數(shù)組是
    的頭像 發(fā)表于 08-10 08:11 ?2060次閱讀
    面試???1:<b class='flag-5'>函數(shù)</b><b class='flag-5'>指針</b>與<b class='flag-5'>指針</b><b class='flag-5'>函數(shù)</b>、數(shù)組<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>數(shù)組