国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

做字體的網(wǎng)站西安seo霸屏

做字體的網(wǎng)站,西安seo霸屏,什么網(wǎng)站做兼職最好,科技發(fā)展對(duì)國(guó)家的重要性顧得泉:個(gè)人主頁(yè) 個(gè)人專欄:《Linux操作系統(tǒng)》 《C/C》 《LeedCode刷題》 鍵盤敲爛,年薪百萬! 一、引用的概念 引用不是新定義一個(gè)變量,而是給已存在變量取了一個(gè)別名,編譯器不會(huì)為引用變量開辟內(nèi)存空間…

顧得泉:個(gè)人主頁(yè)

個(gè)人專欄:《Linux操作系統(tǒng)》??《C/C++》??《LeedCode刷題》

鍵盤敲爛,年薪百萬!


一、引用的概念

???????引用不是新定義一個(gè)變量,而是給已存在變量取了一個(gè)別名,編譯器不會(huì)為引用變量開辟內(nèi)存空間,它和它引用的變量共用同一塊內(nèi)存空間。
???????比如:李逵,在家稱為"鐵牛",江湖上人稱"黑旋風(fēng)"。

? ? ? ?類型& 引用變量名(對(duì)象名) = 引用實(shí)體

簡(jiǎn)單舉個(gè)例子:

???????注意:引用類型必須和引用實(shí)體是同種類型的


二、引用的特性

  1. 引用在定義時(shí)必須初始化
  2. 一個(gè)變量可以有多個(gè)引用
  3. 引用一旦引用一個(gè)實(shí)體,再不能引用其他實(shí)體
void TestRef()
{int a = 10;// int& ra; ? // 該條語(yǔ)句編譯時(shí)會(huì)出錯(cuò)int& ra = a;int& rra = a;printf("%p %p %p\n", &a, &ra, &rra); ?
}

結(jié)果如下:


三、常引用

void TestConstRef()
{const int a = 10;//int& ra = a; ? // 該語(yǔ)句編譯時(shí)會(huì)出錯(cuò),a為常量const int& ra = a;// int& b = 10; // 該語(yǔ)句編譯時(shí)會(huì)出錯(cuò),b為常量const int& b = 10;double d = 12.34;//int& rd = d; // 該語(yǔ)句編譯時(shí)會(huì)出錯(cuò),類型不同const int& rd = d;
}

結(jié)果如下:


四、使用場(chǎng)景

1.做參數(shù)

void Swap(int& left, int& right)
{int temp = left;left = right;right = temp;
}

2.做返回值

int& Count()
{static int n = 0;n++;// ...return n;
}

思考:下面代碼輸出什么結(jié)果?為什么?

int& Add(int a, int b)
{int c = a + b;return c;
}
int main()
{int& ret = Add(1, 2);Add(3, 4);cout << "Add(1, 2) is :"<< ret <<endl;return 0;
}

注意:如果函數(shù)返回時(shí),出了函數(shù)作用域,如果返回對(duì)象還在(還沒還給系統(tǒng)),則可以使用引用返回,如果已經(jīng)還給系統(tǒng)了,則必須使用傳值返回

3.效率比較

???????以值作為參數(shù)或者返回值類型,在傳參和返回期間,函數(shù)不會(huì)直接傳遞實(shí)參或者將變量本身直接返回,而是傳遞實(shí)參或者返回變量的一份臨時(shí)的拷貝,因此用值作為參數(shù)或者返回值類型,效率是非常低下的,尤其是當(dāng)參數(shù)或者返回值類型非常大時(shí),效率就更低。

#include <time.h>
struct A{ int a[10000]; };
void TestFunc1(A a){}
void TestFunc2(A& a){}
void TestRefAndValue()
{A a;// 以值作為函數(shù)參數(shù)size_t begin1 = clock();for (size_t i = 0; i < 10000; ++i)TestFunc1(a);size_t end1 = clock();// 以引用作為函數(shù)參數(shù)size_t begin2 = clock();for (size_t i = 0; i < 10000; ++i)TestFunc2(a);size_t end2 = clock();
// 分別計(jì)算兩個(gè)函數(shù)運(yùn)行結(jié)束后的時(shí)間cout << "TestFunc1(A)-time:" << end1 - begin1 << endl;cout << "TestFunc2(A&)-time:" << end2 - begin2 << endl;
}

結(jié)果展示:

4.性能比較

#include <time.h>
struct A{ int a[10000]; };
A a;
// 值返回
A TestFunc1() { return a;}
// 引用返回
A& TestFunc2(){ return a;}
void TestReturnByRefOrValue()
{// 以值作為函數(shù)的返回值類型size_t begin1 = clock();for (size_t i = 0; i < 100000; ++i)TestFunc1();size_t end1 = clock();// 以引用作為函數(shù)的返回值類型size_t begin2 = clock();for (size_t i = 0; i < 100000; ++i)TestFunc2();size_t end2 = clock();// 計(jì)算兩個(gè)函數(shù)運(yùn)算完成之后的時(shí)間cout << "TestFunc1 time:" << end1 - begin1 << endl;cout << "TestFunc2 time:" << end2 - begin2 << endl;
}

結(jié)果展示:

???????通過上述代碼的比較,發(fā)現(xiàn)傳值和指針在作為傳參以及返回值類型上效率相差很大。


五、引用和指針的區(qū)別

???????在語(yǔ)法概念上引用就是一個(gè)別名,沒有獨(dú)立空間,和其引用實(shí)體共用同一塊空間。

int main()
{int a = 10;int& ra = a;cout<<"&a = "<<&a<<endl;cout<<"&ra = "<<&ra<<endl;return 0;
}

?結(jié)果如下:

???????在底層實(shí)現(xiàn)上實(shí)際是有空間的,因?yàn)橐檬前凑罩羔樂绞絹韺?shí)現(xiàn)的。

int main()
{int a = 10;int& ra = a;ra = 20;int* pa = &a;*pa = 20;return 0;
}

???????我們來看下引用和指針的匯編代碼對(duì)比:

總結(jié):

???????1.引用概念上定義一個(gè)變量的別名,指針存儲(chǔ)一個(gè)變量地址。
???????2.引用在定義時(shí)必須初始化,指針沒有要求
???????3.引用在初始化時(shí)引用一個(gè)實(shí)體后,就不能再引用其他實(shí)體,而指針可以在任何時(shí)候指向任何一個(gè)同類型實(shí)體
???????4.沒有NULL引用,但有NULL指針
???????5.在sizeof中含義不同:引用結(jié)果為引用類型的大小,但指針始終是地址空間所占字節(jié)個(gè)數(shù)(32位平臺(tái)下占4個(gè)字節(jié))
???????6.引用自加即引用的實(shí)體增加1,指針自加即指針向后偏移一個(gè)類型的大小
???????7.有多級(jí)指針,但是沒有多級(jí)引用
???????8.訪問實(shí)體方式不同,指針需要顯式解引用,引用編譯器自己處理
???????9.引用比指針使用起來相對(duì)更安全


結(jié)語(yǔ):關(guān)于引用的簡(jiǎn)單分享到這里就結(jié)束了,希望本篇文章的分享會(huì)對(duì)大家的學(xué)習(xí)帶來些許幫助,如果大家有什么問題,歡迎大家在評(píng)論區(qū)留言,最后祝大家新的一年里學(xué)業(yè)有成,天天開心~~~?

http://aloenet.com.cn/news/45890.html

相關(guān)文章:

  • 國(guó)內(nèi)做視頻的網(wǎng)站有哪些搜索引擎營(yíng)銷的四種方式
  • 網(wǎng)站的類型和特色青島seo外包公司
  • 做網(wǎng)站月度總結(jié)seo推廣教程
  • 游戲網(wǎng)站模板下載aso優(yōu)化排名違法嗎
  • 關(guān)于網(wǎng)站優(yōu)化的文章百度云搜索引擎入口手機(jī)版
  • 白鷺引擎做h5網(wǎng)站cba目前排名
  • 合肥網(wǎng)站建站報(bào)廣告代理在線之家
  • 菲律賓有做網(wǎng)站的嗎電腦上突然出現(xiàn)windows優(yōu)化大師
  • 建設(shè)一個(gè)網(wǎng)站多少錢游戲推廣怎么快速拉人
  • 做外貿(mào)沒有網(wǎng)站可以嗎江蘇提升關(guān)鍵詞排名收費(fèi)
  • 廣州專業(yè)的網(wǎng)站建設(shè)公司play商店
  • 深圳做網(wǎng)站d廣州推廣優(yōu)化
  • 九口袋網(wǎng)站建設(shè)免費(fèi)b站推廣
  • 做產(chǎn)品類網(wǎng)站有哪些內(nèi)容想要網(wǎng)站推廣頁(yè)
  • 網(wǎng)站備案被注銷了怎么辦江蘇企業(yè)網(wǎng)站建設(shè)
  • 銀川網(wǎng)站建設(shè)設(shè)計(jì)短視頻如何引流與推廣
  • 專門查企業(yè)信息的網(wǎng)站百度有幾種推廣方式
  • 西安 美院 網(wǎng)站建設(shè)百度關(guān)鍵詞的費(fèi)用是多少
  • 蘭州網(wǎng)絡(luò)推廣方法深圳專業(yè)seo
  • 深圳網(wǎng)站建設(shè)怎樣容易南寧網(wǎng)絡(luò)推廣品牌
  • 保溫管有哪些網(wǎng)站做網(wǎng)絡(luò)推廣員為什么做不長(zhǎng)
  • 做二手元器件那個(gè)網(wǎng)站查價(jià)格關(guān)鍵詞排名批量查詢軟件
  • 網(wǎng)站換ip對(duì)優(yōu)化有影響嗎網(wǎng)站建站推廣
  • 做網(wǎng)站系統(tǒng)站長(zhǎng)之家站長(zhǎng)工具
  • 邢臺(tái)做網(wǎng)站咨詢站內(nèi)seo內(nèi)容優(yōu)化包括
  • 蘋果做封面下載網(wǎng)站中央新聞直播今天
  • 愛站網(wǎng)官網(wǎng)關(guān)鍵詞查詢精準(zhǔn)營(yíng)銷推廣方案
  • 網(wǎng)站建設(shè)中高低端區(qū)別北京計(jì)算機(jī)培訓(xùn)機(jī)構(gòu)哪個(gè)最好
  • 游戲下載網(wǎng)站 wordpress哈爾濱關(guān)鍵詞排名工具
  • 上海app服務(wù)商北京seo薪資