首頁 > 後端開發 > C++ > C 中的引用可以重新分配嗎?

C 中的引用可以重新分配嗎?

Patricia Arquette
發布: 2024-12-05 20:03:11
原創
921 人瀏覽過

Can References Be Reassigned in C  ?

理解 C 中的引用重新分配

在 C 中,通常指出引用需要在聲明時初始化,並且不能重新分配。然而,最近的一項實驗對這個概念提出了質疑。讓我們研究一下以下程式中引用重新分配的行為:

程式將引用 ri 分配給整型變數 i,使 ri 成為 i 的別名。最初,ri 指向值 5。當 i 修改為 10 時,ri 正確反映了這一變化。然而,關鍵點是下一個語句:ri = j。

這不是引用的重新分配嗎?

令人驚訝的是,答案是。 ri 仍然是 i 的引用。為了證明這一點,您可以比較 ri 和 i 的地址:它們是相同的。您觀察到的不是引用的重新分配,而是對 ri 指向的記憶體位置儲存的值的修改。

簡單來說,ri = j 相當於 *(&ri) = j ,其中 &ri 檢索 ri 的記憶體位址,並 * 取消引用它以存取該值。

作為比較,如果您建立 const int &cri = i,它將阻止任何重新分配給 cri,強制其不變的性質。

總之,雖然引用不能重新分配給 C 中的新變量,但它們可以用於修改它們引用的物件的值,如我們的程式中所示。

以上是C 中的引用可以重新分配嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板