女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是左值、右值呢?左右值和左右值引用

冬至子 ? 來源:iDoitnow ? 作者:艱默 ? 2023-07-18 15:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 左右值和左右值引用

什么是左值、右值呢? 一種極不嚴謹?shù)睦斫鉃椋涸谫x值的時候,能夠被放到等號左邊的值為左值,放在右邊的值為右值。例如:

int sum(int x, int y){return x + y;}

int a = 1;        //a為左值,常數(shù)1為右值
int b = a + a;    //b為左值,表達式a+a為右值
int c = sum(a, a);//c為左值,但函數(shù)sum(a, a)返回值為右值

通過上面的例子,常數(shù)a、表達式(a+a)和函數(shù)sum(a+a)返回值他們都是臨時值,這些值都保存在寄存器中,無法取到他們的地址;而對于abc為具體的變量名,存儲在內(nèi)存中,可以取到其地址。因此一般情況下可以根據(jù)能否取到地址,來區(qū)分左值和右值。

在了解左值和右值之前,我們首先要知道表達式的概念: 由運算符和運算對象構(gòu)成的計算式(類似數(shù)學中的算術(shù)表達式) 。表達式是可以求值的,因此根據(jù)表達式值的類別,可以對其進行分類(準確的來說,是表達式的結(jié)果的值類別,但我們一般不刻意區(qū)分表達式和表達式的求值結(jié)果,所以這里稱“表達式的值類別”。),C++11之后將表達式定義了五種類型:

  • lvalue (Left-hand-side value,左值)
  • prvalue (Pure rvalue,純右值)
  • xvalue (eXpiring value,將亡值)
  • rvalue (Right-hand-side value,右值)
  • glvalue (Generalized lvalue,泛左值)

它們之間的關(guān)系如下圖所示:

圖片

C++11中將表達式按值類別可以分為 左值將亡值純右值 。其中,左值和將亡值合稱為泛左值,純右值和將亡值合稱為右值。

隨著移動語義(后面我們會詳細介紹)引入到 C++11 之中,值類別被重新進行了定義,C++之父Bjarne Stroustrup在《“New” Value Terminology》中給出以區(qū)別表達式的兩種獨立的性質(zhì):

  • 擁有身份 (identity):可以確定表達式是否與另一表達式指代同一實體,例如通過比較它們所標識的對象或函數(shù)的(直接或間接獲得的)地址;
  • 可被移動 :移動構(gòu)造函數(shù)、移動賦值運算符或?qū)崿F(xiàn)了移動語義的其他函數(shù)重載能夠綁定于這個表達式。

C++11 中:

  • 擁有身份且不可被移動的表達式被稱作 左值 (lvalue)表達式;
  • 擁有身份且可被移動的表達式被稱作將****亡值 (xvalue)表達式;
  • 不擁有身份且可被移動的表達式被稱作 純右值 (prvalue)表達式;

1.1 左值

一般情況下,左值我們可以簡單地理解理解為: 能夠使用&取地址的表達式

常見的左值有:

  • 變量名
  • 函數(shù)名
  • 返回左值引用的函數(shù)調(diào)用
  • 前置自增/減的運算符鏈接的表達式(如++i/--i
  • 內(nèi)置的賦值表達式(如a=b,a+=1
  • 字符串等。

:字符串是可以取地址的,因此字符串常量也屬于左值】

1.2 純右值

純右值:表達式本身就是純粹的字面值(如1ture1.0);或者,該表達式求值結(jié)果相當于一個字面值或一個不具名的臨時對象。

常見的純右值有:

  • 除字符串字面值以外的字面值
  • 返回非引用類型的函數(shù)調(diào)用
  • 后置自增/減的運算符鏈接的表達式(如i++/i--
  • 算術(shù)/邏輯/比較表達式(如a+ba&&ba==b
  • 取地址表達式(如&a

1.3 將亡值

將亡值是在C++11中引進來的,顧名思義,就即將銷毀的東西。將亡值的產(chǎn)生與右值引用的產(chǎn)生而引起的,對于將亡值我們常用到的有:

  • 返回類型是右值引用的函數(shù)調(diào)用或重載運算符的表達式(如std::move(x)
  • 轉(zhuǎn)換為右值引用的轉(zhuǎn)換函數(shù)的調(diào)用表達式(如static(a)

1.4 左右值引用

左值引用就是對左值的引用。它的形式如:T&,根據(jù)const屬性可以分為兩種:

  • const左值引用
  • 非const左值引用

例如:

int a = 1;
int& la = a;//la為a的左值引用(非const左值引用)
la = 2;//la為非const左值引用,可以修改它的值

const int& c_la = a;//c_la為a的左值引用(const左值引用)
c_la = 2;//該語法錯誤,c_la為const左值引用,不可以修改它的值

右值引用就是對右值的引用,通過T&&來表示。右值的引用只能綁定到右值上。

2. 移動語義

在未出現(xiàn)右值引用之前,我們在函數(shù)調(diào)用傳參的時候,在某些時候可以使用按引用傳遞參數(shù),減少參數(shù)多的拷貝對資源的消耗,提高程序的運行效率。當我們在處理包含大量數(shù)據(jù)的對象時,移動語義顯的尤為重要。

2.1 std::move

如何將一個左值轉(zhuǎn)換為一個右值呢?C++11在頭文件utility中聲明了std::move()函數(shù),該函數(shù)的作用就是類型轉(zhuǎn)換,通過它,我們可以 把一個左值,將其標記為右值。move()不做任何資源轉(zhuǎn)移的操作,只是產(chǎn)生一個將亡值表達式來標識參數(shù)x,其完全等同于static_cast(x)。例如:

int a = 1;
int&& r_a = a; //錯誤,右值引用只能綁定到右值上,而a是一個左值
int&& r_a = std::move(b); //正確, std::move(a) 是一個右值,可以用右值引用綁定

2.2 移動構(gòu)造函數(shù)

一個類 T 的首個形參是 T&&、const T&&volatile T&&const volatile T&&,且沒有其他形參,或剩余形參都有默認值。

具體的形式如下:

T (T &&) //移動構(gòu)造函數(shù)的典型聲明形式
T (T &&) = default; //強制編譯器生成移動構(gòu)造函數(shù)。
T (T &&) = delete; //避免隱式生成移動構(gòu)造函數(shù)。

示例:

#include < string >
#include < iostream >
#include < utility >

class A
{
    private:
    std::string s;
    public:
    A(std::string str = "A()") : s(str) {std::cout<

2.3 移動賦值運算符

一個類 T 的移動賦值運算符是名為 operator=的非模板非靜態(tài)成員函數(shù),它接受恰好一個 T&&const T&&volatile T&&const volatile T&& 類型的形參。

具體的形式如下:

T & T ::operator= (T &&) //移動賦值運算符的典型聲明
T & T ::operator= (T &&) = default; //強制編譯器生成移動賦值運算符
T & T ::operator= (T &&) = delete; //避免隱式移動賦值

示例:

#include < string >
#include < iostream >
#include < utility >
 
class A
{
    private:
    std::string s;
    public:
    A(std::string str = "A()") : s(str) {std::cout<
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    9014

    瀏覽量

    151382
  • C++語言
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    7270
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    什么是有效?有效是什么意思?

    什么是有效?有效是什么意思? 有效----在兩個相同的電阻器件中,分別通過直流電和交流電,如果經(jīng)過同一時間
    發(fā)表于 04-17 10:31 ?1.9w次閱讀

    箱體的Q,箱體的Q是什么意思

    箱體的Q,箱體的Q是什么意思 一,Qtc: 音箱全系統(tǒng)的總Q, 二,箱體的損耗Q
    發(fā)表于 03-31 13:47 ?5315次閱讀

    光圈/F/4K是什么意思

    光圈/F/4K是什么意思 光圈/F 鏡頭的透光能力。F是物鏡焦距(EFL)與入射光瞳周長(D)的
    發(fā)表于 04-10 13:42 ?3086次閱讀

    音箱系統(tǒng)Q

    一,Qtc:  音箱全系統(tǒng)的總Q, 二,箱體的損耗Q: Ql-泄漏損耗Q. 由箱體及單元密封不好造成泄漏產(chǎn)
    發(fā)表于 10-24 15:17 ?1.3w次閱讀

    電容的Q和D是什么?Q和D有什么作用?

    選擇電感電容時特別關(guān)注他們的Q,那什么是Q?Q是什么意思,它為什么重要?
    的頭像 發(fā)表于 09-13 14:16 ?7.9w次閱讀
    電容的Q<b class='flag-5'>值</b>和D<b class='flag-5'>值</b>是什么?Q<b class='flag-5'>值</b>和D<b class='flag-5'>值</b>有什么作用?

    、傳址、傳引用的區(qū)別,哪個更高效?

    、傳址、傳引用的區(qū)別,哪個更高效?
    的頭像 發(fā)表于 06-29 15:05 ?6687次閱讀

    基于權(quán)和基于夏普利的圖像酬勞分配機制

    基于權(quán)和基于夏普利的圖像酬勞分配機制
    發(fā)表于 06-24 15:35 ?43次下載

    C++基礎(chǔ)語法中的引用、封裝和多態(tài)

    本期是C++基礎(chǔ)語法分享的第六節(jié),今天給大家來分享一下: (1)引用; (2)宏; (3)成員初始化列表; (4)封裝; (5)繼承; (6)多態(tài); 引用
    的頭像 發(fā)表于 09-12 09:58 ?1514次閱讀

    一文帶你了解電容的Q和D

    在做射頻的時候,選擇電感電容時特別關(guān)注他們的Q,那什么是Q?Q是什么意思,它為什么重要? 品質(zhì)因數(shù)Q:表征一個儲能器件(如電感線圈、電容等)、諧振電路所儲能量同每周損耗能量之比
    發(fā)表于 02-11 10:47 ?5次下載
    一文帶你了解電容的Q<b class='flag-5'>值</b>和D<b class='flag-5'>值</b>

    EMI讀數(shù)是以QP還是PK為準

    EMI讀數(shù)是以QP還是PK為準 ?
    的頭像 發(fā)表于 05-08 09:46 ?9823次閱讀
    EMI讀數(shù)是以QP<b class='flag-5'>值</b>還是PK<b class='flag-5'>值</b>為準

    電容的Q與D

    在做射頻的時候,選擇電感電容時特別關(guān)注他們的Q,那什么是Q?Q是什么意思,它為什么重要?
    的頭像 發(fā)表于 05-29 16:01 ?1.1w次閱讀
    電容的Q<b class='flag-5'>值</b>與D<b class='flag-5'>值</b>

    稚暉君剛拿了百度投資 市場估十幾億美元左右

    據(jù)報道,華為天才少年稚暉君創(chuàng)業(yè)項目智元機器人最近完成了第三輪融資,市場估達到了十幾億美元左右
    的頭像 發(fā)表于 05-31 16:07 ?1745次閱讀

    通友集團一體成型電感-電感的Q是什么?怎么增加Q

    通友集團一體成型電感-電感的Q是什么?怎么增加Q? 被動元件【電感器】在各類電路中的應用是十分常見的,按照不同的性質(zhì)、形式或結(jié)構(gòu),分成多種類型 我們都知道電感Q越高越好,那么,
    的頭像 發(fā)表于 08-07 21:25 ?1137次閱讀
    通友集團一體成型電感-電感的Q<b class='flag-5'>值</b>是什么?怎么增加Q<b class='flag-5'>值</b><b class='flag-5'>呢</b>?

    怎么知道電容的SFR是多少?如何選取不同SFR的電容

    怎么知道電容的SFR是多少?如何選取不同SFR的電容?是選取一個電容還是兩個電容? 一、什么是電容的SFR 電容的SFR是指自然電容(也可稱為串聯(lián)電容)與薄膜電容(也可稱為平行電容)的比值
    的頭像 發(fā)表于 10-23 09:52 ?2475次閱讀

    中間繼電器的動作與釋放可調(diào)嗎

    中間繼電器的動作和釋放通常是可以調(diào)整的,以滿足不同的應用需求。動作是繼電器觸發(fā)動作所需的控制電壓或電流,而釋放則是繼電器解除動作所
    的頭像 發(fā)表于 02-05 15:09 ?1.2w次閱讀
    主站蜘蛛池模板: 阿拉善左旗| 望谟县| 亳州市| 江川县| 罗定市| 民乐县| 松江区| 红安县| 濉溪县| 沙田区| 瓦房店市| 滨州市| 黔江区| 铜梁县| 虎林市| 南丹县| 略阳县| 荃湾区| 巴青县| 措勤县| 榆中县| 麻江县| 潼南县| 吉安县| 依安县| 黄平县| 潮安县| 凤台县| 崇州市| 潜江市| 濮阳市| 望奎县| 永清县| 林芝县| 邹城市| 铜鼓县| 板桥市| 大理市| 石门县| 栖霞市| 武乡县|