国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C++中的Lambda表達式及表達式語句

C++中的Lambda表達式及表達式語句

2022-03-10 14:38hqx C/C++

這篇文章主要介紹了C++中的Lambda表達式及表達式語句,表達式這個概念在C++中屬于比較細節的知識了,很多時候我們只用知道怎么用,對于編譯器內部怎么處理我們并不關心;并且關于左值和右值這個概念,也是C++比較深的一個小

一、概念

定義:表達式由一到多個操作數組成,可以求值并通常會返回求值結果;

最基本表達式:變量、字面值,通常包含操作符;

操作符特性:

  • 1、接收幾個操作數:一元、二元、三元;
  • 2、對類型有要求(可能涉及類型轉換);
  • 3、操作數是左值還是右值;
  • 4、結果的類型;
  • 5、結果是左值還是右值;
  • 6、優先級與結合性,可用小括號來改變運算順序;
  • 7、 操作符重載:不改變接收操作數的個數、優先級與結合性;

注意:關于操作符優先級問題可以參考文檔

 

二、左值與右值

參考網站

在C語言中:左值可能放在等號左邊,右值只能放在等號右邊;

在C++中,左值也不一定能放在等號左邊,右值也可能放在等號左邊;

值類型關系圖:

C++中的Lambda表達式及表達式語句

  • glvalue:泛左值,標識一個對象、位或函數;
  • pvalue:純右值,用于初始化對象或作為操作數;
  • xvalue:亡值,表示其資源可以被重新使用;

C++是支持左值和右值的轉換的;

decltype可以接收表達式,并且根據類型不同產生不同的值:

參考文章:decltype 說明符

  • 表達式的值類別為純右值,則為type;
  • 表達式的值類別為純左值,則為type& ;
  • 表達式的值類別為亡值,則為type&& ;

 

三、類型轉換

定義:一些操作符要求其操作數具有特定的類型,或者具有相同的類型,此時可能產生類型轉換;

隱式類型轉換:編譯器自動發生的;

顯式類型轉換:

  • 1、static_cast<新類型> (表達式);
  • 2、const_cast<新類型> (表達式):去除常量性或增加常量性;
  • 3、顯示引入的轉換;

 

四、操作符

  • 算數運算符中,除邏輯非外,其它操作符都是左結合的;
  • 邏輯與、邏輯或具有短路特性;
  • 邏輯與&&優先級高于邏輯或||;
  • 按位取反符:~ 按位與:& 按位或:| 按位異或:^ 移位操作符:<<、>>
  • 移位操作在一定程度上是乘以或除以2的冪,但速度更快;
  • 賦值操作符是右結合的;
  • 還有一些其他操作符,比如成員訪問操作符.和->,條件操作符?:等,在這就不做介紹了;

 

五、思考

1、思考下面x變量是左值還是右值,有什么特性?

const int x = 3;
? 

x是一個純左值,由于系統內部為常量,所以不能放在等號左邊;

2、思考一下以下賦值操作符的原始代碼是怎樣的?

int x;
int y;
x = y = 5;

首先賦值操作符是右結合的,先計算y=3,并且不是把y的值賦予給x,而是這個表達式的返回值賦予x,原始代碼如下:

x = (y = 3);

可以通過https://cppinsights.io/這個網站,看出C++內部對一些代碼的轉換處理;

3、思考以下代碼做了什么事情?

int x = 2;
int y = 3;
x^=y^=x^=y;

答案就是通過復合賦值操作,交換了x和y的值,詳細也和異或這個操作符有關;

總結:
? 表達式這個概念在C++中屬于比較細節的知識了,很多時候我們只用知道怎么用,對于編譯器內部怎么處理我們并不關心;并且關于左值和右值這個概念,也是C++比較深的一個小知識點,了解后對于程序的優化是有很大幫助的,本篇重點需要關注左值和右值,多參考官方cppreferenc的文檔,這是最權威的說明文檔;

到此這篇關于C++中的Lambda表達式及表達式語句的文章就介紹到這了,更多相關C++ Lambda表達式內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

延伸 · 閱讀

精彩推薦
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
主站蜘蛛池模板: 成人午夜影院 | 日韩一区二区视频在线 | 久久久精品网站 | 狠狠艹 | 亚洲 欧美 精品 | 日本免费在线视频 | 中文字幕网站 | 这里只有精品在线 | 日韩国产欧美精品 | 亚洲综合第一页 | 亚洲成人高清 | 国产精品第一区 | 日韩在线观看中文字幕 | 日韩第一区 | 中国久久久 | 欧美一区不卡 | 狠狠躁夜夜躁人人爽天天高潮 | 成人一区二区在线观看 | 精品免费久久久久 | 亚洲一区在线日韩在线深爱 | 一性一交一色生活片 | 国产精品成人一区二区三区夜夜夜 | 91精品国产日韩91久久久久久 | 亚洲视频1区 | 日韩免费 | 精品久久久久一区二区国产 | 六月婷操 | 日本一区二区高清视频 | 亚洲电影在线 | 精品亚洲国产成av人片传媒 | 成人爽a毛片一区二区免费 成年人毛片视频 | 久久e久久 | 免费一二区 | 久久99精品久久久久蜜臀 | 激情久久网 | 国产精品美女久久久 | 成人精品在线视频 | 亚洲av毛片一区二二区三三区 | 亚洲成人激情在线 | 国产一区二区三区久久久久久久久 | 国产乱码精品一区二区三区av |