簡體   English   中英

c ++混淆中的引用

[英]reference in c++ confusion

#include <iostream>
using namespace std;

int main()
{
    int i=9,k=8;

    int &q=i;

    q=k;

    cout<<i<<"\n"<<q<<"\n";

    return 0;
}

輸出:

8
8

但是在我的書中給出“q = k僅改變i的值而不改變q。這是因為作為參考的q被自動解除引用為(* q)。因此,q中存儲的地址處的值被替換按值i“但是你可以看到q的值也會改變。 不是嗎???

q ,作為參考,不會改變。 換句話說,它指的是i永遠 ,永遠和永遠(直到它超出范圍)。 不能q引用不同的對象。 這就是“它的價值[原文如此?]從未改變的意思”。 q的“價值”是i的地址。 當你在那里分配q時,你真的要分配給i

你打印出來的是i的值,然后是q引用的對象的值(即i )。

由於q是參照i ,這意味着它只是一個別名i (其他名稱到i )。

所以無論i有什么價值, q都會有!

初始化參考時如下

int i = 9;

int &q =i;

q只是becom的另一個別名(你可以說是昵稱),所以如果在q中發生任何變化,它也會反映在i中,反之亦然。

初始化變量時:

int&q = i;

每次你改變我,你改變q和反之亦然。

q的引用具有相同的i值,因此主題指向相同的內存位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM