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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go 和 C++ 中指針和引用之間的邏輯區(qū)別?

Go 和 C++ 中指針和引用之間的邏輯區(qū)別?

Go
慕妹3146593 2021-06-07 17:32:18
無論提供了對指針的引用的便利性,例如無針解引用和特定于每個使用的規(guī)則,提供兩種語言結(jié)構(gòu)作為指針和引用是否有任何合乎邏輯的理由,或者它只是一種語法糖?(我猜最終的底層實(shí)現(xiàn)是編譯器將對引用使用與暗示/檢查由語言為引用定義的規(guī)則的指針相同的步驟。)注意:問題不在于語言對引用定義的規(guī)則,例如“引用不允許在 C++ 中分配 NULL 但在指針中”等。
查看完整描述

2 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個贊

你問兩個問題,如果我理解正確的話

  1. 指針和引用有什么區(qū)別

  2. 為什么支持這兩種數(shù)據(jù)類型

開始:

  1. 指針指的是內(nèi)存中數(shù)據(jù)類型所在的位置。給定底層硬件,指針的大小是固定的,通常為 4 或 8 個字節(jié) - 完全不管它實(shí)際上指向什么。此外,可以使用無效值將指針傳遞給函數(shù) - foo(reintepret_cast<int *>(0xDEADBEEF) );。相比之下,引用確?;A(chǔ)數(shù)據(jù)是有效的——因?yàn)橐檬菍ο蟊旧淼膭e名,并且不能移動(前提是被引用的對象仍在范圍內(nèi)——根據(jù)下面的評論進(jìn)行編輯)。

  2. 有理由支持這兩種類型。第一個原因是確保傳遞給函數(shù)的數(shù)據(jù)是有效的 - 不會在測試指針有效性(而不是NULL)上浪費(fèi)周期。第二個原因是可以確定數(shù)據(jù)不僅指向有效位置,而且還指向有效數(shù)據(jù)對象。但主要原因是引用允許我們享受調(diào)用函數(shù)而不按值傳遞參數(shù)的好處,但仍然保證參數(shù)引用有效值。


查看完整回答
反對 回復(fù) 2021-06-21
?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個贊

你應(yīng)該問 Bjarne Stroustrup 為什么 C++ 有引用。在其他地方,他在第 7.7 節(jié)參考資料,C++ 編程語言,第四版第 189 頁中提供了他的基本原理?!禖++ 的設(shè)計與演化》第 86 卷。


查看完整回答
反對 回復(fù) 2021-06-21
  • 2 回答
  • 0 關(guān)注
  • 312 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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