C++常量引用

非常量變量不同類(lèi)型的值不能賦值,但是當(dāng)變量類(lèi)型為常量類(lèi)型時(shí),可以被賦值,但是當(dāng)被指向的引用的值被改變時(shí),引用的值不會(huì)被改變。

···javascript

?int age = 10;

? ? const int &p1 = age;

? ? age = 1;

? ? std::cout << p1;

? ? std::cout << age;

/*--------------------------------------------------------*/

int age = 10;

? ? const long &p1 = age;

? ? age = 1;

? ? std::cout << p1;

? ? std::cout << age;

···

常量同類(lèi)型匯編代碼

```

18: int age = 10;

mov? ? ? ? dword ptr [ebp-0Ch],0Ah?

? ? 19:? ? const int &p1 = age;

lea? ? ? ? eax,[ebp-0Ch]?

mov? ? ? ? dword ptr [ebp-18h],eax?

? ? 20:? ? age = 1;

mov? ? ? ? dword ptr [ebp-0Ch],1

```

常量不同類(lèi)型匯編代碼

```swift

18: int age = 10;

mov? ? ? ? dword ptr [ebp-0Ch],0Ah?

? ? 19:? ? const long &p1 = age;

mov? ? ? ? eax,dword ptr [ebp-0Ch]?

mov? ? ? ? dword ptr [ebp-24h],eax?

lea? ? ? ? ecx,[ebp-24h]?

mov? ? ? ? dword ptr [ebp-18h],ecx?

? ? 20:? ? age = 1;

mov? ? ? ? dword ptr [ebp-0Ch],1

```

當(dāng)賦值給非同類(lèi)型的常量引用時(shí),會(huì)變量的值取出來(lái)放到寄存器,然后把寄存器的值給引用,并不是變量的地址(引用),這就是為什么會(huì)導(dǎo)致賦值的變量改變值時(shí),引用的值不會(huì)跟隨改變。

最后編輯于
?著作權(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語(yǔ)言中,使用指針(Pointer)可以間接獲取、修改某個(gè)變量的值 ? 在C++中,使用引用(Referen...
    蔣斌文閱讀 134評(píng)論 0 0
  • c語(yǔ)言雖說(shuō)經(jīng)常和c++在一起被大家提起,但可千萬(wàn)不要以為它們是一個(gè)東西?,F(xiàn)在我們常用的C語(yǔ)言是C89標(biāo)準(zhǔn),C++是...
    曹元_閱讀 560評(píng)論 0 6
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 8,162評(píng)論 0 4
  • 公元:2019年11月28日19時(shí)42分農(nóng)歷:二零一九年 十一月 初三日 戌時(shí)干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 7,523評(píng)論 0 2

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