左右值引用

2021-10-01 12:49:36 字數 528 閱讀 1488

1、左值和右值的概念

左值是可以放在賦值號左邊可以被賦值的值;左值必須要在記憶體中有實體;

右值當在賦值號右邊取出值賦給其他變數的值;右值可以在記憶體也可以在cpu暫存器。

乙個物件被用作右值時,使用的是它的內容(值),被當作左值時,使用的是它的位址。

2、引用

引用是c++語法做的優化,引用的本質還是靠指標來實現的。引用相當於變數的別名。

引用可以改變指標的指向,還可以改變指標所指向的值。

引用的基本規則:

宣告引用的時候必須初始化,且一旦繫結,不可把引用繫結到其他物件;即引用必須初始化,不能對引用重定義;

對引用的一切操作,就相當於對原物件的操作。

3、左值引用和右值引用

3.1 左值引用

左值引用的基本語法:type &引用名 = 左值表示式;

3.2 右值引用

右值引用的基本語法type &&引用名 = 右值表示式;

右值引用在企業開發人員在**優化方面會經常用到。

右值引用的「&&」中間不可以有空格。

左右值屬性和引用

如果用成語來形容左右值,左值就是曠日持久,右值則是曇花一現。1.1 左值和右值的區別 c 的表示式要麼是左值的,要麼是右值的 左值和右值的區別在於 1.2 運算子與左右值 一些運算子對操作的物件左右值有要求 int a a 3 a 4 5 賦值表示式是函式,其要求左側物件是左值 非常量 右側要則要求...

C 引用(左值引用,右值引用)

特點 引用 引用本質指標實現。引用一旦初始化,不會引用其他變數。右值引用目的 快速建立暫存器資料的引用,就是還沒有記憶體實體的資料可以立即建立乙個引用。一般寫模板函式有乙個左值引用的模板函式,都會對應乙個右值引用的模板函式,即使實現 是相同的。左值 有記憶體實體 右值 暫存器的值 move 把左值當...

左值引用 右值引用

左值引用是對乙個左值進行引用的型別,右值引用則是對乙個右值進行引用的型別。左值引用和右值引用都是屬於引用型別。無論是宣告乙個左值引用還是右值引用,都必須立即進行初始化。而其原因可以理解為是引用型別本身自己並不擁有所繫結物件的記憶體,只是該物件的乙個別名。左值引用是具名變數值的別名,而右值引用則是不具...