左值與右值的關係

2021-08-15 17:49:08 字數 472 閱讀 2627

左值是持續時間長,針對位址進行操作的,操作符為&

右值持續時間短,主要針對暫存器操作的,操作符為&&

有時候為了提公升系統的效能,對物件進行移動操作,但是不要對其進行內容的複製或者記憶體的操作,那麼就用右值,

有一根函式包含在標頭檔案中的std::move()可以將左值轉為右值

1、主要是練習了左值和右值的用法,這個再提公升效能上有很大的幫助,因為對右值的操作是對暫存器的操作,實現了對內容的移動的時候不會造成資源的複製,

2、std::move可以將左值引用轉為右值引用,只有移動沒有內容的搬遷和記憶體的拷貝

3、左值具有永續性,右值具有短暫性

4、因為右值引用是c ++ 11的標準因此再用編譯器編輯的時候要加上gnu++1y,完整的指令是 g++ 1.cc -o 11 -std = gnu++1y

#include #include int main()

左值與右值

本文摘自 http jiang5005.spaces.live.com blog cns 619f3de8ab99988e 111.entry?action post wa wsignin1.0 8月20日 c 中的左值和右值 1.概念 變數和文字常量都有儲存區,並且有相關的型別,區別在於變數是可定...

左值與右值

左值就是那些能夠出現在賦值符號左邊的東西。右值就是那些可以出現賦值符號右邊的東西。例如 a b 25 a就是乙個左值,因為它標識了乙個可以儲存結果值的地點,b 25是個右值,因為它指定了乙個值。但是它們可以互換嗎?b 25 a 原先用作左值的a此時也可以當作右值,因為每個位置都 包含乙個值。然而,b...

左值與右值

對左值和右值的乙個最常見的誤解是 等號左邊的就是左值,等號右邊的就是右值。左值和右值都是針對表示式而言的,左值是指表示式結束後依然存在的持久物件,右值是指表示式結束時就不再存在的臨時物件。乙個區分左值與右值的便捷方法是 看能不能對表示式取位址,如果能,則為左值,否則為右值。下面給出一些例子來進行說明...