左值、左值引用、右值、右值引用
1、左值和右值的概念
左值是可以放在賦值號左邊可以被賦值的值;左值必須要在記憶體中有實體;
右值當在賦值號右邊取出值賦給其他變數的值;右值可以在記憶體也可以在CPU暫存器。
一個物件被用作右值時,使用的是它的內容(值),被當作左值時,使用的是它的地址。
2、引用
引用是C++語法做的優化,引用的本質還是靠指標來實現的。引用相當於變數的別名。
引用可以改變指標的指向,還可以改變指標所指向的值。
引用的基本規則:
- 宣告引用的時候必須初始化,且一旦繫結,不可把引用繫結到其他物件;即引用必須初始化,不能對引用重定義;
- 對引用的一切操作,就相當於對原物件的操作。
3、左值引用和右值引用
3.1 左值引用
左值引用的基本語法:type &引用名 = 左值表示式;
3.2 右值引用
右值引用的基本語法type &&引用名 = 右值表示式;
右值引用在企業開發人員在程式碼優化方面會經常用到。
右值引用的“&&”中間不可以有空格。
相關文章
- 左值、右值、左值引用,右值引用,std::move函式函式
- C++ 右值引用和左值引用C++
- C++左值引用與右值引用C++
- c++ 左值引用與右值引用C++
- C++ 左值引用和右值引用之間的轉換C++
- JavaScript 左值與右值JavaScript
- C++11 左值引用和右值引用與引用摺疊和完美轉發C++
- 右值引用
- C++ 左值和右值C++
- C筆記-左值與右值筆記
- C++右值引用C++
- C++霧中風景10:聊聊左值,純右值與將亡值C++
- [CPP] 左值 lvalue,右值 rvalue 和移動語義 std::move
- C++左值右值完美轉發轉移C++
- 右值引用,移動語義,完美轉發
- C++中“非常量引用的初始值必須是左值”的處理方法C++
- 陣列左邊減去右邊數值的最大差值陣列
- 使用 ref 引用值
- 透徹理解C++11新特性:右值引用、std::move、std::forwardC++Forward
- C++智慧指標之shared_ptr與右值引用(詳細)C++指標
- 行從左到右遞增,列從上到下遞增,找目標值
- c++11-17 模板核心知識(十)—— 區分萬能引用(universal references)和右值引用C++
- 左側固定,右側自適應的佈局方式理解margin負值理論
- 一段小程式碼秒懂C++右值引用和RVO(返回值優化)的誤區C++優化
- 常被新手忽略的值賦值和引用賦值(偏redux向)賦值Redux
- [c++11]我理解的右值引用、移動語義和完美轉發C++
- javascript原始值和引用值型別及區別JavaScript型別
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- 值傳遞和引用傳遞
- 值型別和引用型別型別
- GO切片傳值/引用/指標Go指標
- C#程式設計引用型別和值型別 以及引用傳遞和值傳遞C#程式設計型別
- 對C++11中的`移動語義`與`右值引用`的介紹與討論C++
- shared_ptr 傳值和傳引用
- c#:值型別&引用型別C#型別
- JavaScript值型別和引用型別JavaScript型別
- 左兒子和右兄弟
- 二分查詢的左閉右開和左閉右閉寫法