指針和引用

這個(gè)話題比較沉重,因?yàn)橛懻撨@個(gè)話題的小哥哥小姐姐們,基本屬于吃多了撐的。但是最還有有人喜歡討論,所有我也吃多了撐的來(lái)討論一下。

先看一段代碼:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    int a = 5;
    int b = 50;
    int *p;
    p = &a;

    int &q = a;

    // 打?。褐羔樀牡刂?,指針指向的地址,指向指向地址的值
    qDebug() << &p << " : " << p << " : " << *p;
    // 打?。阂玫牡刂罚玫闹?    qDebug() << &q << " : " << q;

    p = &b;
    q = b; // 這次操作是的效果是:把b的值賦給a

    qDebug() << &p << " : " << p << " : " << *p;
    qDebug() << &q << " : " << q;

    return app.exec();
}

運(yùn)行輸出:

0x73fc80  :  0x73fc8c  :  5
0x73fc8c  :  5
0x73fc80  :  0x73fc88  :  50
0x73fc8c  :  50

通過(guò)上面我們發(fā)現(xiàn)這么幾件事:

指針 引用
可以先定義,再賦值 定義和賦值必須一起
定義必須是用”左值“ 定義必須是用”左值“
定義后可以修改 定義后不能在修改
是一個(gè)對(duì)象,有自己空間 是一個(gè)別名,不會(huì)被分配空間

(Ps:“左值”和“右值”的概念后面再說(shuō)。)

到這里可以解釋一般的問(wèn)題了,但是事情的本質(zhì)并沒(méi)有被揭露。

指針和引用的區(qū)別是在編譯時(shí)確定的:

程序在編譯時(shí)分別將指針和引用添加到符號(hào)表上:符號(hào)表上記錄的是變量名變量所對(duì)應(yīng)地址,符號(hào)表生成后就不會(huì)改變。

指針變量在符號(hào)表上對(duì)應(yīng)的地址值為指針變量的地址值,而引用在符號(hào)表上對(duì)應(yīng)的地址值為引用對(duì)象的地址值。

因此指針可以改變指向的對(duì)象,而引用對(duì)象不能改。這是使用指針不安全而使用引用安全的主要原因。從某種意義上來(lái)說(shuō)引用可以被認(rèn)為是不能改變的指針,因?yàn)橐玫牡讓邮怯弥羔槼A繉?shí)現(xiàn)的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • C++是在C語(yǔ)言的基礎(chǔ)上發(fā)展來(lái)的。C++除了有C語(yǔ)言的指針外,還增加一個(gè)新的概念——引用,初學(xué)者容易把引用和指針混...
    蕭瀟公舉閱讀 8,738評(píng)論 1 5
  • 從概念上講。指針從本質(zhì)上講就是存放變量地址的一個(gè)變量,在邏輯上是獨(dú)立的,它可以被改變,包括其所指向的地址的改變和其...
    IvanRunning閱讀 416評(píng)論 0 1
  • 指針和引用是C/C++中兩個(gè)非常重要的概念,這兩天看了下“指針”和“引用”的wikipedia詞條,對(duì)他們有了一些...
    Katou_Megumi閱讀 1,069評(píng)論 0 1
  • 一.指針 ** 1.指針概念**:指針就是用來(lái)保存內(nèi)存地址的變量。 2.聲明指針的方式:int *p;與運(yùn)算符*結(jié)...
    YBshone閱讀 486評(píng)論 0 4
  • c++指針和引用的詳細(xì)介紹 1、指針和引用的區(qū)別 指針-對(duì)于一個(gè)類(lèi)型T,T就是指向T的指針類(lèi)型,也即一個(gè)T類(lèi)型的變...
    王王王王王景閱讀 702評(píng)論 0 1

友情鏈接更多精彩內(nèi)容