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

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

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

2020-05-23 13:55:30
字體:
來源:轉載
供稿:網友

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引用、臨時變量 引用參數詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲最大的成人网| 国产精品入口尤物| 91爱视频在线| 亚洲欧美激情精品一区二区| 久久久久久久久电影| 亚洲bt欧美bt日本bt| 成人天堂噜噜噜| 中国人与牲禽动交精品| 国产亚洲精品久久久久动| 日本国产精品视频| 亚洲精品一区二区久| 亚洲四色影视在线观看| 国产精品色午夜在线观看| 亚洲欧洲偷拍精品| 成人黄色影片在线| 日本午夜在线亚洲.国产| 亚洲国产天堂久久综合网| 日韩精品在线视频美女| 欧美日韩在线免费观看| 亚洲欧美日韩在线高清直播| 国产欧美日韩中文字幕| 91精品国产乱码久久久久久久久| 成人做爽爽免费视频| 91av国产在线| 亚洲精品短视频| 欧美xxxx综合视频| 日韩av男人的天堂| 中文字幕日韩精品在线观看| 亚洲欧美国产精品久久久久久久| 国产一区二区精品丝袜| 国产精品网站视频| 久久久久久久亚洲精品| 日韩美女在线看| 尤物精品国产第一福利三区| 欧美日韩国产精品一区| 国产欧美韩国高清| 日本精品性网站在线观看| 91探花福利精品国产自产在线| 亚洲女人天堂视频| 欧美性猛交xxxx免费看漫画| 亚洲成人黄色在线观看| 欧美成人性色生活仑片| 国产一区二中文字幕在线看| 亚洲国产成人久久| 久久久精品2019中文字幕神马| 亚洲天天在线日亚洲洲精| 欧美一级大胆视频| 日韩精品在线免费| 中文字幕日韩欧美| 国产成人精品在线视频| 亚洲第一国产精品| 国产精品视频久久久久| 6080yy精品一区二区三区| 亚洲最大成人免费视频| 欧美最猛性xxxxx亚洲精品| 欧美在线中文字幕| 国产综合在线视频| 亚洲美腿欧美激情另类| 亚洲欧洲一区二区三区在线观看| 国产噜噜噜噜久久久久久久久| 最近2019年手机中文字幕| 欧洲成人在线观看| 日本高清视频一区| 成人乱色短篇合集| 国产精品日韩欧美大师| 久久不射电影网| 97国产精品视频人人做人人爱| 午夜剧场成人观在线视频免费观看| 精品国产一区二区三区久久狼5月| 欧美精品18videos性欧美| 欧美日韩一区二区三区在线免费观看| 欧美富婆性猛交| 狠狠久久亚洲欧美专区| 久久激情五月丁香伊人| 国产在线观看精品一区二区三区| 国产精品视频1区| 操日韩av在线电影| 日韩久久午夜影院| 久久精品视频在线观看| 91在线观看免费网站| 国产精品女主播| 亚洲第一男人天堂| 欧美日产国产成人免费图片| 日韩欧美成人网| 久久精品在线视频| 欧美壮男野外gaytube| 秋霞成人午夜鲁丝一区二区三区| 亚洲欧洲一区二区三区久久| 91亚洲精品一区| 日韩欧美亚洲成人| 国产精品中文在线| 日韩经典中文字幕在线观看| 国产区精品视频| 91精品视频网站| 91在线免费网站| 久久成人在线视频| 日韩亚洲欧美中文在线| 国产欧美精品日韩精品| 国产欧美日韩中文字幕| 91精品久久久久久久久青青| 欧美日韩国产精品| 一区二区三区回区在观看免费视频| 欧美大片va欧美在线播放| 国产精品白嫩美女在线观看| 亚洲xxxx做受欧美| 4k岛国日韩精品**专区| 最好看的2019的中文字幕视频| 91久久精品日日躁夜夜躁国产| 久久久国产精品视频| 国产日韩中文字幕在线| 欧美激情免费观看| 国产成人黄色av| 欧美电影在线观看网站| 精品久久久久久亚洲精品| 91免费国产视频| 在线成人一区二区| 日产日韩在线亚洲欧美| 久久久久久美女| 久久精品国产欧美亚洲人人爽| 日韩欧美中文字幕在线播放| 国产精品自产拍高潮在线观看| 日韩在线不卡视频| 国产精品成人一区二区| 成人黄色免费片| 中文字幕无线精品亚洲乱码一区| 欧美激情一区二区三区在线视频观看| 亚洲国产精品悠悠久久琪琪| 欧美另类精品xxxx孕妇| 国产精品久久久久久久久影视| 久久久国产成人精品| 黄色一区二区三区| 国产精品亚洲一区二区三区| 国产剧情日韩欧美| 亚洲综合社区网| 久久久国产精彩视频美女艺术照福利| 成人黄色免费在线观看| 97精品久久久| 91亚洲va在线va天堂va国| 国产精品电影在线观看| 久久久精品视频成人| 亚洲影院在线看| 欧美乱大交xxxxx另类电影| 国产精品丝袜久久久久久高清| 69精品小视频| 最近更新的2019中文字幕| 亚洲日韩欧美视频| 国产日韩精品在线观看| 欧美国产精品va在线观看| 久久久国产一区二区三区| 亚洲r级在线观看| 欧美日韩国产一区中文午夜| 美女国内精品自产拍在线播放| 亚洲免费av片| 久久久www成人免费精品| 欧美一区在线直播| 欧美激情精品久久久久久免费印度| 日本欧美一二三区| 国产91色在线播放| 国产一区在线播放| 欧美成人精品h版在线观看| 2021国产精品视频| 久久久久久久久综合| 国产中文字幕日韩| 色先锋久久影院av|