亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++ const引用、臨時變量 引用參數詳解

2020-01-26 14:17:59
字體:
來源:轉載
供稿:網友

C++引用―臨時變量、引用參數和const引用

如果實參與引用參數不匹配,C++將生成臨時變量。如果引用參數是const,則編譯器在下面兩種情況下生成臨時變量:

實參類型是正確的,但不是左值

實參類型不正確,但可以轉換為正確的類型

左值參數是可被引用的數據對象,例如,變量、數組元素、結構成員、引用和被解除引用的指針都是左值,非左值包括字面常量和包含多項式的表達式。定義一個函數

Double refcube(const double& ra){     Returnra*ra*ra;}double side = 3.0;double* pd = &side;double& rd = side;long edge = 5L;double lens[4]={2.3,3.4,4.5,6.7};double c1 = refcube(side); // ra 是sidedouble c2 = refcube(lens[2]); // ra是lens[2]double c3 = refcube(rd);  // ra 是 rddouble c4 = refcube(*pd); // ra 是*pddouble c5 = refcube(edge); // ra 是臨時變量double c6 = refcube(7.0); // ra 是臨時變量double c7 = refcube(side+10.0); // ra 是臨時變量

參數side lens[2] rd 和*pd都是有名稱的、double類型的數據對象,因此可以為其創建引用,而不需要臨時變量。但是edge雖然是變量,類型卻不正確,double引用不能指向long。另一方面,參數7.0和side+10.0的類型都正確,但沒有名稱,在這些情況下,編譯器都將生成一個臨時匿名變量,并讓ra指向它。這些臨時變量只在函數調用期間存在,伺候編譯器便可以任意將其刪除

那么為什么對于常量引用,這種行為是可行的,其他情況下卻不行呢?

Void swapr(int& a,int& b){     Inttemp;     Temp=a;     A= b;     B= temp;}

在早期的C++較寬松的規則下,執行下面的操作將發生什么?

Long a = 3,b = 5;

Swapr(a,b);

這里的類型不匹配,因此編譯器將創建兩個臨時的int變量,將他們初始化為3和5,然后交換臨時變量的內容,而a和b保持不變

簡而言之,如果接受引用參數的函數的意圖是修改作為參數傳遞的變量,則創建臨時變量將阻止這種意圖的實現,解決方法是,禁止創建臨時變量,下載的C++標準正是正陽做的、

現在來看refcube()函數,該函數的目的只是使用傳遞的值,而不是修改他們,因此臨時變量不會造成任何不利的影響。反而會使函數在可處理的參數種類方面更通用。因此,如果聲明將引用指定為const,C++將在必要時生成臨時變量、實際上,對于形參為const引用的C++函數,如果實參不匹配,則其行為類似于按值傳遞,為確保原始數據不被修改,將使用臨時變量來存儲值、

(PS:如果函數調用的參數不是左值或與相應的const引用參數的類型不匹配,則C++將創建類型正確的匿名變量,將函數調用的參數的值傳遞給該匿名變量,并讓參數來引用該變量)

應盡可能使用const

使用cosnt可以避免無意總修改數據的編程錯誤

使用const使函數能夠處理const和非const實參,否則將只能接受非const數據

使用const引用使函數能夠正確生成并使用臨時變量

以上這篇C++ const引用、臨時變量 引用參數詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍在线观看| 国产精品老牛影院在线观看| 4444欧美成人kkkk| 国产精品av电影| 亚洲精品日韩激情在线电影| 国产精品视频精品| 国产精品啪视频| 毛片精品免费在线观看| 国产一区深夜福利| 国产精品流白浆视频| 欧美激情亚洲综合一区| 亚洲最新av在线网站| 国产日韩欧美中文| 日韩有码在线视频| 国产精品国模在线| 亚洲美腿欧美激情另类| 91久久国产精品91久久性色| www.国产精品一二区| 精品自在线视频| 亚洲国产又黄又爽女人高潮的| 久久精品成人一区二区三区| 欧美精品www在线观看| 亚洲国内精品视频| 91精品国产99久久久久久| 国产精品久久久久久久久久| 国产精品美女免费看| 国产欧美日韩精品专区| 91精品国产91久久久久久吃药| 日韩欧美中文免费| 国产亚洲一区二区在线| 亚洲午夜女主播在线直播| 国产69精品久久久久9999| 亚洲欧美三级伦理| 欧美一级淫片videoshd| 国产精品中文在线| 亚洲美女福利视频网站| 国产欧美日韩91| 国产精品亚洲网站| 2019av中文字幕| 国产精品久久久久久久午夜| 国产精品手机播放| 日本精品一区二区三区在线播放视频| 日本韩国在线不卡| 国产精品自拍网| 日韩av高清不卡| 热99在线视频| 日韩精品中文字幕在线观看| 亚洲色图欧美制服丝袜另类第一页| 92国产精品视频| 国内精品久久久久久影视8| 欧美一级成年大片在线观看| 国产精品欧美日韩| 亚洲美女www午夜| 国产一区欧美二区三区| 欧美另类极品videosbestfree| 日韩免费黄色av| 日韩欧美中文在线| 国产精品第100页| 国产精品视频yy9099| 亚洲成人aaa| 欧美精品成人在线| 精品一区二区电影| 亚洲 日韩 国产第一| 国产热re99久久6国产精品| 日韩一级裸体免费视频| 国产精品男人爽免费视频1| 久久久久久久999精品视频| 97视频人免费观看| 亚洲a一级视频| 亚洲天堂av高清| 日韩成人av在线| 中文字幕日韩高清| 国产精品久久久久久久久影视| 国产欧美日韩中文字幕| 欧美日韩一区二区在线| 精品亚洲aⅴ在线观看| 日本精品视频在线播放| 欧美激情手机在线视频| 日韩精品视频观看| 日韩电影免费观看在线| 日韩高清人体午夜| 精品成人av一区| 欧美成人精品h版在线观看| 欧美俄罗斯乱妇| 久久天天躁狠狠躁夜夜躁2014| 中日韩美女免费视频网站在线观看| 亚洲影院高清在线| 欧美日韩成人网| 欧美亚洲伦理www| 精品调教chinesegay| 日韩免费av片在线观看| 久久视频在线直播| 在线播放国产一区二区三区| 国产精品十八以下禁看| 亚洲图片在区色| 国产视频丨精品|在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 精品国产91乱高清在线观看| 日韩成人中文字幕在线观看| 国产91在线视频| 亚洲第一在线视频| 欧美日韩中国免费专区在线看| 97精品一区二区视频在线观看| 91超碰caoporn97人人| 欧美日韩久久久久| 日本一区二区在线播放| 国产不卡av在线免费观看| 欧美午夜精品在线| 粗暴蹂躏中文一区二区三区| 亚洲午夜小视频| 国产欧美精品在线播放| 久久久女女女女999久久| 日本一本a高清免费不卡| 日韩欧美精品网址| 91在线免费观看网站| 国产精品影院在线观看| 国产在线观看精品一区二区三区| 日韩免费视频在线观看| 永久免费毛片在线播放不卡| 精品久久久久久久久久久久| 热re91久久精品国99热蜜臀| 日本不卡高字幕在线2019| 日韩av一区二区在线观看| 在线观看欧美日韩国产| 91黑丝在线观看| 亚洲性夜色噜噜噜7777| 久久免费精品视频| 国产又爽又黄的激情精品视频| 亚洲欧美日韩天堂一区二区| 主播福利视频一区| 色狠狠av一区二区三区香蕉蜜桃| 日韩欧美视频一区二区三区| 国产精品露脸自拍| 久久好看免费视频| 日韩成人av一区| 国产精品美女久久久久av超清| 国产精品久久婷婷六月丁香| 国产精品嫩草影院久久久| 在线观看不卡av| 日韩电影免费观看在线| 欧美xxxx综合视频| 成人黄色大片在线免费观看| 亚洲三级免费看| 欧美成人全部免费| 精品性高朝久久久久久久| 日本久久中文字幕| 国产精品久久久久久婷婷天堂| 精品香蕉在线观看视频一| 国产精品久久久久91| 97在线免费观看视频| 国产精品视频白浆免费视频| 日韩精品在线视频观看| 亚洲国产另类 国产精品国产免费| 欧美区在线播放| 成人免费看黄网站| 日韩视频永久免费观看| 欧美在线性视频| 成人天堂噜噜噜| 欧美精品一区在线播放| 亚洲精品v天堂中文字幕| 中文字幕欧美视频在线| 在线观看不卡av| 一本一本久久a久久精品牛牛影视| 亚洲在线免费视频|