第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

函數(shù)指針的取消引用是如何發(fā)生的?

函數(shù)指針的取消引用是如何發(fā)生的?

C++ C
尚方寶劍之說(shuō) 2019-07-02 17:20:26
函數(shù)指針的取消引用是如何發(fā)生的?為什么和如何取消引用一個(gè)函數(shù)指針只是“什么都不做”?這就是我要說(shuō)的:#include<stdio.h>void hello() { printf("hello"); }int main(void) {      (*****hello)(); }從評(píng)論中這里:函數(shù)指針的取消引用很好,但是得到的函數(shù)指示符將被立即轉(zhuǎn)換回函數(shù)指針。從一個(gè)答案這里:刪除(以您認(rèn)為的方式)函數(shù)的指針意味著:訪問(wèn)代碼內(nèi)存,因?yàn)樗鼘⑹且粋€(gè)數(shù)據(jù)內(nèi)存。函數(shù)指針不應(yīng)該以這種方式取消引用。相反,它被稱(chēng)為。我會(huì)用一個(gè)名字“取消”與“調(diào)用”并排。沒(méi)事的。無(wú)論如何:C的設(shè)計(jì)方式是,函數(shù)名標(biāo)識(shí)符和變量保持函數(shù)的指針都是相同的:地址到代碼內(nèi)存。它允許在標(biāo)識(shí)符或變量上使用Call()語(yǔ)法跳轉(zhuǎn)到該內(nèi)存。多么,怎樣一點(diǎn)兒沒(méi)錯(cuò)函數(shù)指針的取消引用是否有效?
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

這不是完全正確的問(wèn)題。至少對(duì)C來(lái)說(shuō),正確的問(wèn)題是

函數(shù)值在rvalue上下文中會(huì)發(fā)生什么情況?

(rvalue上下文是名稱(chēng)或其他引用應(yīng)該用作值的任何地方,而不是位置-基本上是在轉(zhuǎn)讓的左邊以外的任何地方)。名稱(chēng)本身來(lái)自右(邊),正確的-作業(yè)的手邊。)

好的,那么在rvalue上下文中函數(shù)值會(huì)發(fā)生什么呢?它被立即隱式轉(zhuǎn)換為指向原始函數(shù)值的指針。如果取消引用指針*,您將再次獲得相同的函數(shù)值,該值將立即隱式轉(zhuǎn)換為指針。你可以隨心所欲地做很多次。

你可以嘗試兩個(gè)類(lèi)似的實(shí)驗(yàn):

  • 如果取消引用lvalue背景-作業(yè)的左邊。(如果您記住函數(shù)是不可變的,那么答案將是您所期望的。)

  • 數(shù)組值也在lvalue上下文中轉(zhuǎn)換為指針,但它被轉(zhuǎn)換為指向元素鍵入,而不是指向數(shù)組的指針。因此,去引用它將給您一個(gè)元素,而不是數(shù)組,并且您顯示的瘋狂不會(huì)發(fā)生。

希望這能幫上忙。

P.S.關(guān)于為什么函數(shù)值被隱式轉(zhuǎn)換為指針,答案是對(duì)于那些使用函數(shù)指針的用戶來(lái)說(shuō),不用使用是非常方便的&也有雙重方便:調(diào)用位置上的函數(shù)指針自動(dòng)轉(zhuǎn)換為函數(shù)值,因此不必編寫(xiě)*通過(guò)函數(shù)指針調(diào)用。

與C函數(shù)不同,C+函數(shù)可以重載,我沒(méi)有資格評(píng)論C+中的語(yǔ)義是如何工作的。


查看完整回答
反對(duì) 回復(fù) 2019-07-02
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

站在編譯器作者的立場(chǎng)上。函數(shù)指針具有定義良好的含義,它是指向表示機(jī)器代碼的字節(jié)塊的指針。

當(dāng)程序員取消函數(shù)指針時(shí),您會(huì)做什么?您接受機(jī)器代碼的第一個(gè)(或8個(gè))字節(jié)并將其重新解釋為指針嗎?這樣做不起作用的幾率約為20億比1。你申報(bào)UB嗎?已經(jīng)有很多這樣的事情了。還是你忽視了這一企圖?你知道答案。


查看完整回答
反對(duì) 回復(fù) 2019-07-02
  • 3 回答
  • 0 關(guān)注
  • 614 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)