卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

什么叫指針 C語言中的函數(shù)指針和指針函數(shù),有什么區(qū)別嗎?該如何理解?

C語言中的函數(shù)指針和指針函數(shù),有什么區(qū)別嗎?該如何理解?函數(shù)指針和指針函數(shù)的區(qū)別:1. 名字解析。這兩個(gè)名詞都是帶有修飾的名詞,可以略微擴(kuò)展一下,在中間加個(gè)助詞"的",函數(shù)的指針和指針的函數(shù)現(xiàn)在看看,

C語言中的函數(shù)指針和指針函數(shù),有什么區(qū)別嗎?該如何理解?

函數(shù)指針和指針函數(shù)的區(qū)別:

1. 名字解析。這兩個(gè)名詞都是帶有修飾的名詞,可以略微擴(kuò)展一下,在中間加個(gè)助詞"的",函數(shù)的指針和指針的函數(shù)現(xiàn)在看看,稍微清晰了一點(diǎn),現(xiàn)在再擴(kuò)展一下,加點(diǎn)修飾詞--指向函數(shù)的指針和返回值為指針的函數(shù)現(xiàn)在基本明確了。

2. 格式。

Type (* pFunc)(Type para) -- 函數(shù)指針

Type* Func(Type para) -- 指針函數(shù)

3. 先說指針函數(shù),其實(shí)它就是普通函數(shù),只不過返回值是指針(其實(shí)就是地址)而已,很多人因?yàn)榭謶种羔?,覺得它神秘!

4. 函數(shù)指針。這個(gè)有點(diǎn)復(fù)雜,首先*和pFunc先結(jié)合,優(yōu)先級(jí)最高,因此pFunc就是指針了,同時(shí)這個(gè)指針后面帶走一對(duì)小括號(hào),里面還有參數(shù),和函數(shù)的參數(shù)是一樣的格式,因此這個(gè)指針就是函數(shù)指針,這個(gè)指針前面還有個(gè)類型-返回值類型!有人這里感覺很奇怪,指針怎么有返回值呢?

5. 指針有返回值,是因?yàn)檫@個(gè)指針講來使用的時(shí)候,會(huì)指向一個(gè)格式和它自己類似的函數(shù),因此這個(gè)指針的返回值和參數(shù)格式就決定了指向的函數(shù)的格式!

6. 函數(shù)指針要熟練,沒有為啥,必須會(huì),因?yàn)楹瘮?shù)指針使用的時(shí)候體現(xiàn)的是C語言中的聯(lián)編特點(diǎn),也是后來C 語言中多態(tài)的雛形!

學(xué)習(xí)c語言的時(shí)候指針應(yīng)該怎么理解?

簡(jiǎn)單的說,指針就是一個(gè)代表地址的無符號(hào)整數(shù)。


通常我們使用指針,是為了讀取或改變指針指向的數(shù)據(jù)。

所以,單獨(dú)理解指針是不夠的。還得了解指針指向的數(shù)據(jù)空間是如何安排的。這有可能會(huì)涉及到與具體CPU/OS相關(guān)的一些知識(shí)。如果能結(jié)合計(jì)算機(jī)體系結(jié)構(gòu)知識(shí)一起理解會(huì)更深入、更準(zhǔn)確。

比如:

  • 各種整數(shù)(signed/unsigned long/int/short)是如何存放的?

  • 各種浮點(diǎn)數(shù)(float/double/long double)是如何存放的?

  • 數(shù)組在數(shù)據(jù)空間中是如何組織的?

  • 字符串是如何存放的?

  • 結(jié)構(gòu)(struct)和聯(lián)合(union)是如何存放的?

  • 位域(bit field)的組織

這其中和具體CPU相關(guān)的部分通常有:

  • 結(jié)構(gòu)(struct)和聯(lián)合(union)的對(duì)齊,通常會(huì)以CPU字長(zhǎng)對(duì)齊

  • 整數(shù)的存放,會(huì)涉及CPU大小端的規(guī)定

  • 浮點(diǎn)數(shù)的存放,和FPU的設(shè)計(jì)直接相關(guān)


再進(jìn)一步,還有一些擴(kuò)展知識(shí),涉及內(nèi)存的分配和釋放:

  • 程序中如何分配內(nèi)存?(malloc/free)

  • 堆(heap)和棧(stack)各是什么?

這些又和CPU/OS相關(guān)。


小結(jié)一下:指針就是地址,也是一個(gè)整數(shù)。但要用好它,需要了解計(jì)算機(jī)存儲(chǔ)空間的分配規(guī)律,難點(diǎn)在這里,突破點(diǎn)也在這里。