国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

深度刨析指針Advanced 2

這篇具有很好參考價(jià)值的文章主要介紹了深度刨析指針Advanced 2。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

作者主頁(yè):paper jie的博客_CSDN博客-C語(yǔ)言,算法詳解領(lǐng)域博主

本文作者:大家好,我是paper jie,感謝你閱讀本文,歡迎一建三連哦。

本文錄入于《系統(tǒng)解析C語(yǔ)言》專(zhuān)欄,本專(zhuān)欄是針對(duì)于大學(xué)生,編程小白精心打造的。筆者用重金(時(shí)間和精力)打造,將C語(yǔ)言基礎(chǔ)知識(shí)一網(wǎng)打盡,希望可以幫到讀者們哦。

其他專(zhuān)欄:《C語(yǔ)言》《算法詳解》《C語(yǔ)言-語(yǔ)法篇》

內(nèi)容分享:本期對(duì)C語(yǔ)言中的指針的進(jìn)階知識(shí)進(jìn)行進(jìn)行具體講解,各位看官姥爺快搬好小板凳坐好叭。

? ? -------- 不要998,不要98,只要一鍵三連,三連買(mǎi)不了吃虧,買(mǎi)不了上

當(dāng)

目錄

??寫(xiě)在前面

??函數(shù)指針

??兩段有趣的代碼

??函數(shù)指針數(shù)組

??指向函數(shù)指針數(shù)組的指針

??回調(diào)函數(shù)


??寫(xiě)在前面

接上一篇的文章,接下來(lái)我們將對(duì)函數(shù)指針,函數(shù)指針的數(shù)組,指向函數(shù)指針數(shù)組的指針,回調(diào)函數(shù)進(jìn)行具體的分析,在學(xué)習(xí)這些內(nèi)容之前,我認(rèn)為這些知識(shí)是可有可無(wú)的,應(yīng)用場(chǎng)景非常少。但是在學(xué)完之后發(fā)現(xiàn)并不是這樣,所以各位還是請(qǐng)耐心看看叭。

??函數(shù)指針

我們?cè)谇懊娴膬?nèi)容中,學(xué)習(xí)到了整型指針,字符指針,數(shù)組指針,那函數(shù)指針又是怎么定義的呢?

深度刨析指針Advanced 2

?在這里,我們就要思考了:&test 和test是一樣的地址嗎,它們的arr,&arr有區(qū)別嗎?

test和&test的地址一樣深度刨析指針Advanced 2

?test和&test的意義是一樣的

通過(guò)結(jié)果我們可以發(fā)現(xiàn)int(*padd)(int,int) = add 也可以得到結(jié)果,所以它們的意義一樣,于arr,&arr有區(qū)別。且我們通過(guò)代碼可知道:函數(shù)調(diào)用用add,(*padd),padd都可以得到結(jié)果。

深度刨析指針Advanced 2

但是,有一個(gè)地方得注意: *(padd)(2, 3),這樣子是不可以的,它存放不了指針。它是先和(2,3)結(jié)合,再和*結(jié)合。

??兩段有趣的代碼

//代碼1
(*(void (*)())0)();
//代碼2
void (*signal(int, void(*)(int)))(int);

?解析:

//代碼1
(*(void (*)())0)();

//調(diào)用0地址處的函數(shù) 
// 返回類(lèi)型是void 無(wú)參數(shù)

//1. void(*)()  是一個(gè)函數(shù)指針類(lèi)型
// 返回類(lèi)型是void 沒(méi)有參數(shù)
//2. (void(*)())0 將0強(qiáng)制類(lèi)型轉(zhuǎn)化為函數(shù)地址
//3. *(void(*)())0 將0地址進(jìn)行了解引用操作 找到0地址處的函數(shù)
//4. (*(void (*)())0)() 函數(shù)調(diào)用 調(diào)用0的地址的函數(shù) 

//代碼2
void (*signal(int, void(*)(int)))(int);

//這是一個(gè)函數(shù)聲明 該函數(shù)的返回類(lèi)型是函數(shù)指針 參數(shù)是int和函數(shù)指針

//1. void(*)(int) 函數(shù)指針類(lèi)型 返回類(lèi)型是void 參數(shù)是int類(lèi)型
//2. sianal(int, void(*)(int)) sianal是一個(gè)函數(shù)名 參數(shù)是int 和一個(gè) 函數(shù)指針
//3. void (*signal(int, void(*)(int)))(int); sianal 的返回類(lèi)型也是一個(gè)函數(shù)指針
//該指針?lè)祷仡?lèi)型是void 參數(shù)是int

這些“奇葩的代碼”是在《C陷阱和缺陷》中看到的,大家有興趣也可以去看看,里面有許多有趣的代碼。

??函數(shù)指針數(shù)組

數(shù)組是一個(gè)存放同類(lèi)型數(shù)據(jù)的存儲(chǔ)空間,在之前的文章類(lèi)里,我們已經(jīng)學(xué)習(xí)了指針數(shù)組。

深度刨析指針Advanced 2

把一個(gè)函數(shù)的地址放到一個(gè)數(shù)組中,那這個(gè)數(shù)組就是叫函數(shù)指針數(shù)組。它的定義方式如下:?

深度刨析指針Advanced 2

??指向函數(shù)指針數(shù)組的指針

函數(shù)指針數(shù)組指針,顧名思義,它是一個(gè)指針,這個(gè)指針指向一個(gè)數(shù)組,且指向的這個(gè)數(shù)組里面元素的類(lèi)型是函數(shù)指針類(lèi)型。

定義:

深度刨析指針Advanced 2

??回調(diào)函數(shù)

回調(diào)函數(shù)就是一個(gè)通過(guò)函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個(gè)函數(shù),當(dāng) 這個(gè)指針被用來(lái)調(diào)用其所指向的函數(shù)時(shí),我們就說(shuō)這是回調(diào)函數(shù)?;卣{(diào)函數(shù)不是由該函數(shù)的實(shí)現(xiàn)方直接調(diào) 用,而是在特定的事件或條件發(fā)生時(shí)由另外的一方調(diào)用的,用于對(duì)該事件或條件進(jìn)行響應(yīng)。

通俗的講就是:一個(gè)函數(shù)的地址給另一個(gè)函數(shù)做參數(shù),在執(zhí)行的過(guò)程中用到了這個(gè)參數(shù)就回到那個(gè)函數(shù)運(yùn)行,得到的結(jié)果再返回來(lái)。

畫(huà)圖解釋就是:

深度刨析指針Advanced 2


到這里,我們對(duì)C語(yǔ)言指針的內(nèi)容已經(jīng)全部學(xué)完啦。通過(guò)初階和進(jìn)階的知識(shí),這些足以支撐我們以后的學(xué)習(xí)。接下來(lái)在想提高對(duì)指針的理解大家只有去通過(guò)刷題和一些項(xiàng)目來(lái)拔高對(duì)它的理解啦。后面還會(huì)有一篇對(duì)指針練習(xí)題的講解,大家敬請(qǐng)期待叭。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-487726.html

到了這里,關(guān)于深度刨析指針Advanced 2的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語(yǔ)言指針,深度長(zhǎng)文全面講解

    C語(yǔ)言指針,深度長(zhǎng)文全面講解

    指針對(duì)于C來(lái)說(shuō)太重要。然而,想要全面理解指針,除了要對(duì)C語(yǔ)言有熟練的掌握外,還要有計(jì)算機(jī)硬件以及操作系統(tǒng)等方方面面的基本知識(shí)。所以本文盡可能的通過(guò)一篇文章完全講解指針。 為什么需要指針? 指針解決了一些編程中基本的問(wèn)題。 ?指針的使用使得不同區(qū)域的

    2024年02月07日
    瀏覽(15)
  • 基于深度學(xué)習(xí)的指針式儀表傾斜校正方法——論文解讀

    基于深度學(xué)習(xí)的指針式儀表傾斜校正方法——論文解讀

    中文論文題目:基于深度學(xué)習(xí)的指針式儀表傾斜校正方法 英文論文題目:Tilt Correction Method of Pointer Meter Based on Deep Learning 周登科、楊穎、朱杰、王庫(kù).基于深度學(xué)習(xí)的指針式儀表傾斜校正方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2020, 32(12):9.DOI:10.3724/SP.J.1089.2020.18288. ? ? ? ?針對(duì)儀

    2024年02月12日
    瀏覽(25)
  • 動(dòng)態(tài)規(guī)劃思想案例刨析

    動(dòng)態(tài)規(guī)劃的思想 動(dòng)態(tài)規(guī)劃解決問(wèn)題的核心思想是“重疊子問(wèn)題”和“最優(yōu)子結(jié)構(gòu)”。 重疊子問(wèn)題 :在復(fù)雜問(wèn)題中,往往存在許多重復(fù)的子問(wèn)題。動(dòng)態(tài)規(guī)劃通過(guò)避免重復(fù)計(jì)算,將子問(wèn)題的解保存起來(lái),以便在需要時(shí)直接引用,從而提高效率。通過(guò)記憶化存儲(chǔ)或者使用動(dòng)態(tài)規(guī)劃

    2024年01月17日
    瀏覽(16)
  • 紅黑樹(shù)——原理刨析

    紅黑樹(shù)——原理刨析

    ? ? ? ? 眾所周知,紅黑樹(shù)是從AVLTree樹(shù)中衍變而來(lái)的,所以在學(xué)紅黑樹(shù)之前還是要好好的理解一下AVLTree樹(shù)的原理,為理解紅黑樹(shù)減輕理解負(fù)擔(dān),好了進(jìn)入正題。 ? ? ? ? 由名可知,紅黑樹(shù)——肯定是與顏色有關(guān)的一個(gè)樹(shù),又因?yàn)槭菑腁VLTree樹(shù)中衍化過(guò)來(lái)的,所以也是搜索樹(shù)(

    2024年02月05日
    瀏覽(17)
  • 深入刨析容器(二):容器的進(jìn)程

    這章節(jié)主要是從容器的技術(shù)概念入手,說(shuō)一下容器的基礎(chǔ),有了好的基礎(chǔ)才能更好的理解容器這門(mén)技術(shù),先說(shuō)一下容器和進(jìn)程的關(guān)系,后續(xù)的文章會(huì)說(shuō)進(jìn)程的隔離與限制資源以及容器的內(nèi)部靈魂,來(lái)一點(diǎn)點(diǎn)深入容器,話不多說(shuō),那么開(kāi)始把! 之前的章節(jié)說(shuō)過(guò)容器就是一個(gè)“沙

    2024年02月09日
    瀏覽(18)
  • 【C++】map & set 底層刨析

    【C++】map & set 底層刨析

    在 C++ STL 庫(kù)中,map 與 set 的底層為紅黑樹(shù),那么在不寫(xiě)冗余代碼的情況下使用紅黑樹(shù)同時(shí)實(shí)現(xiàn) map 與 set 便是本文的重點(diǎn)。 迭代器的好處是可以方便遍歷,是數(shù)據(jù)結(jié)構(gòu)的底層實(shí)現(xiàn)與用戶透明。如果想要給紅黑樹(shù)增加迭代器,需要考慮以下問(wèn)題: begin() 與 end() STL 明確規(guī)定,be

    2024年04月12日
    瀏覽(22)
  • 【C語(yǔ)言深度解剖】float變量在內(nèi)存中存儲(chǔ)原理&&指針變量與“零值”比較

    【C語(yǔ)言深度解剖】float變量在內(nèi)存中存儲(chǔ)原理&&指針變量與“零值”比較

    大家好好我是沐曦希?? 根據(jù)國(guó)際標(biāo)準(zhǔn)IEEE(電氣和電子工程協(xié)會(huì)) 754,任意一個(gè)二進(jìn)制浮點(diǎn)數(shù)V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符號(hào)位,當(dāng)S=0,V為正數(shù);當(dāng)S=1,V為負(fù)數(shù)。 M表示有效數(shù)字,大于等于1,小于2。 2^E表示指數(shù)位。 例如: 十進(jìn)制中的5.0轉(zhuǎn)換成二進(jìn)制

    2024年02月14日
    瀏覽(22)
  • C++函數(shù)傳遞數(shù)組方法及原理刨析

    C++函數(shù)傳遞數(shù)組方法及原理刨析

    當(dāng)數(shù)組作為函數(shù)形參的時(shí)候,正確的寫(xiě)法如下: 上面兩種寫(xiě)法都是正確的,之所以推薦用第一種寫(xiě)法,因?yàn)榭勺x性更好一些,別人一眼就知道參數(shù)a是一個(gè)數(shù)組,而第二種寫(xiě)法不能直接看出a這個(gè)參數(shù)的意義。 有的同學(xué)就有疑問(wèn)了,為啥兩種寫(xiě)法都可以呢? 因?yàn)閿?shù)組名字本身

    2024年02月09日
    瀏覽(19)
  • 深入刨析容器(一):容器的前世今生

    題外話,從左耳聽(tīng)風(fēng)那里聽(tīng)到的話,技術(shù)的世界再變,你要找到不變的去學(xué)習(xí),也就是說(shuō)其實(shí)變來(lái)變?nèi)サ闹徊贿^(guò)是外層理念封裝的概念,實(shí)質(zhì)的話本質(zhì)還是基礎(chǔ),把基礎(chǔ)打好才是無(wú)敵,這也點(diǎn)醒了我,要好好的學(xué)習(xí)基礎(chǔ)知識(shí),才能以不變應(yīng)萬(wàn)變。 然后在極客時(shí)間溜達(dá)的時(shí)候,

    2024年02月09日
    瀏覽(35)
  • 深入刨析容器(三):容器的隔離與限制

    Docker容器因?yàn)檫€是共用的宿主機(jī)的內(nèi)核,看似隔離了,其實(shí)還是隔離不徹底,只不過(guò)是被宿主機(jī)隱藏的進(jìn)程,但是容器卻沒(méi)有虛擬機(jī)似的那么大消耗,雖然“敏捷”、“高性能”是容器較于虛擬機(jī)最大的優(yōu)勢(shì),但是隔離不徹底也是它的最大缺點(diǎn),共享內(nèi)核那么暴露也會(huì)越多,

    2024年02月09日
    瀏覽(15)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包