首頁 > 後端開發 > C++ > C 引用是否可以重新分配,或只是值修改?

C 引用是否可以重新分配,或只是值修改?

Barbara Streisand
發布: 2024-12-05 01:34:11
原創
717 人瀏覽過

Can C   References Be Reassigned, or is it Just Value Modification?

C 中的引用重新分配

C 中聲明引用需要初始化,給人一種引用是不可變且無法重新分配的印象。但是,請考慮以下程式:

#include <iostream>

using namespace std;

int main() {
    int i = 5, j = 9;

    int &ri = i;
    cout << "ri is : " << ri << '\n';
    i = 10;
    cout << "ri is : " << ri << '\n';
    ri = j; // Is this not reassigning the reference?
    cout << "ri is : " << ri << '\n';
    return 0;
}
登入後複製

程式碼成功編譯並產生預期輸出:

ri is : 5
ri is : 10
ri is : 9
登入後複製

與流行的看法相反,行 ri = j 不會重新分配引用。相反,它通過引用 ri 修改 i 的值,如在該行之前和之後打印 i 所證明的那樣。這種行為得到了以下事實的支持:&ri 和 &i 打印相同的地址,表明 ri 仍然是對 i 的引用。

相反,宣告常數引用 (const int &cri = i) 可防止重新分配引用本身。

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

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