中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

北京網(wǎng)站建設(shè)新聞國產(chǎn)長尾關(guān)鍵詞拘挖掘

北京網(wǎng)站建設(shè)新聞,國產(chǎn)長尾關(guān)鍵詞拘挖掘,網(wǎng)站關(guān)鍵詞密度,百度優(yōu)化seo目錄 1. 引用 1.1 引用特性 1.2 常引用 1.2.1 權(quán)限放大 1.2.2 權(quán)限縮小 1.3 使用場景 1.3.1 傳參 1.3.2 做返回值 1.4 傳值和傳引用的效率比較 1.5 引用和指針的區(qū)別 2. 內(nèi)聯(lián)函數(shù) 2.1 inline 2.2 特性 1. 引用 在C中,引入了一個新的概念引用,與…

目錄

1. 引用

1.1 引用特性

1.2 常引用

1.2.1 權(quán)限放大

?1.2.2 權(quán)限縮小

1.3 使用場景

1.3.1 傳參?

1.3.2 做返回值

?1.4 傳值和傳引用的效率比較

?1.5 引用和指針的區(qū)別

2. 內(nèi)聯(lián)函數(shù)

?2.1 inline

?2.2 特性


1. 引用

? ? ? ? 在C++中,引入了一個新的概念引用,與傳統(tǒng)的定義變量不同,傳統(tǒng)的定義變量是新開一份空間來存儲數(shù)據(jù),而引用則是給一個已經(jīng)存在的空間起一個別名,它和引用的變量共用同一份空間。

1.1 引用特性

  • 引用必須在定義的時候初始化
  • 一個變量可以有多個引用
  • 引用一旦引用一個實體就不能在引用其他實體
	int a = 0;int& b = a;int& c = a;cout << a << ' ' << b << ' ' << c << endl;cout << &a << ' ' << &b << ' ' << &c << endl;

?輸出:

0 0 0
000000B0DDAFF6A4 000000B0DDAFF6A4 000000B0DDAFF6A4

? ? ? ? 從上述的輸出可以很明顯的看出引用是和被引用的實體共用用一塊空間。

1.2 常引用

? ? ? ? 常引用就是const關(guān)鍵字修飾的引用,但是我們在使用常引用是會遇到各種報錯,其實就是權(quán)限放大縮小的問題,所謂權(quán)限就是是否具有讀或者寫的權(quán)力,在C++中引用支持權(quán)限縮小但不支持權(quán)限放大。

1.2.1 權(quán)限放大

? ? ? ? 首先要說明的是c++是不支持權(quán)限放大的,如果出現(xiàn)權(quán)限放大就會出現(xiàn)報錯。(權(quán)限放大就是增加了權(quán)限,比如原本變量用const修飾只能讀不能修改,你用引用引用它時沒有使用const修飾即為可以修改,這就叫做權(quán)限放大,這是不被編譯器允許的。)

	const int a = 0;//錯誤寫法int& ra = a; //變量a有const修飾符,說明a只讀不可寫入,這里沒有用const修飾,造成權(quán)限放大。//正確寫法const int& rra = a;

? ? ? ? 還有一種情況特別容易發(fā)生錯誤,而且犯錯的人常常覺得自己沒有發(fā)生權(quán)限放大,但是確確實實發(fā)生了,并且發(fā)生了報錯,這就是會發(fā)生類型轉(zhuǎn)換的場景。比如下面的場景。?

?1.2.2 權(quán)限縮小

? ? ? ? 在C++中權(quán)限縮小是被允許的,權(quán)限縮小就是比如原來的變量可讀可寫,你用一個const引用引用這個實體是完全可以的,比如:

	int a = 0;const int& b = a;

1.3 使用場景

1.3.1 傳參?

? ? ? ? 傳參的一個特別典型的應(yīng)用就是swap了,因為引用所引用的實體和本體共用的是一個空間,所以引用發(fā)生改變其實也就是本體發(fā)生改變。所以swap交換變量值就是一個很典型的應(yīng)用。

void mySwap(int& a, int& b)
{swap(a, b);
}
int main()
{int a = 0, b = 1;cout << a << b << endl;swap(a, b);cout << a << b << endl;
}

?輸出:

01
10

1.3.2 做返回值

int& count()
{static int a = 0;a++;//...return a;
}

? ? ? ? ?但是我們在返回引用的時候要特別注意被引用對象的作用域和聲明周期,以免導致非凡的訪問,比如下面的案例:

//錯誤案例
int& add(int a, int b)
{int c = a + b;return c;
}
int main()
{cout << add(1, 2) << endl;
}

? ? ? ? 所以這里縱使編譯器返回了正確的結(jié)果甚至也沒有報錯,但它依然是一種錯誤的使用。

?1.4 傳值和傳引用的效率比較

? ? ? ? 以值作為參數(shù)或者返回類型,在傳參和返回的期間,變量不會直接傳遞實參或返回變量本身,而傳遞的是實參或者變量的一份臨時拷貝,如果需要拷貝的類型特別大的時候,效率是極低的。而傳引用是直接傳遞實參或返回變量的本身,幾乎沒有什么消耗。? ??

?1.5 引用和指針的區(qū)別

? ? ? ? 在語法概念上引用其實是一個別名沒有獨立的空間,和其引用的實體共用同一塊空間。但是在底層的實現(xiàn)上實際上是有空間的,因為引用是按照指針方式來實現(xiàn)的。我們通過引用和指針的匯編代碼就可以很容易的看出來。

????????引用和指針的不同點:

  1. ?引用在概念上定義一個變量的別名,指針存儲一個變量地址。
  2. 引用在定義的時候必須初始化,指針沒有要求。
  3. 引用只能引用一個實體,不能更改,指針可以在任何時候指向一個任意的同類型的實體。
  4. 沒有NULL引用,有NULL指針。
  5. sizeof(引用)是引用類型的大小,但指針始終是地址空間所占字節(jié)個數(shù)。
  6. 引用自增為所引用的實體自增,指針自增表示向后偏移一個類型的大小。
  7. 指針需要顯式解引用,引用編譯器自己處理。
  8. 引用比指針安全。

2. 內(nèi)聯(lián)函數(shù)

?2.1 inline

? ? ? ? 以inline關(guān)鍵字修飾的函數(shù)叫做內(nèi)聯(lián)函數(shù),編譯時C++會在調(diào)用內(nèi)聯(lián)函數(shù)的地方展開,沒有函數(shù)建立棧幀的開銷,提升程序運行的效率。C++期望用inline去替代c語言的宏(因為宏不方便調(diào)試,會使代碼可讀性降低,可維護性差,沒有類型的安全檢查)

?2.2 特性

????????inline是一種空間換時間的做法,如果編譯器將函數(shù)當成內(nèi)聯(lián)函數(shù)處理,在編譯階段,會用將函數(shù)體替換函數(shù)調(diào)用,但會讓目標文件變大。

? ? ? ? inline對于編譯器只是一個建議,不同的編譯器關(guān)于inline的實現(xiàn)機制有可能不同,一般將函數(shù)規(guī)模較小的函數(shù)不是遞歸且頻繁調(diào)用的函數(shù)采用inline修飾,否則編譯器可能會忽略inline特性。

? ? ? ? inline也不支持聲明和定義分離分離會導致鏈接錯誤,因為inline函數(shù)會被展開,沒有函數(shù)地址,如果聲明和定義分開會導致鏈接階段找不到函數(shù)的地址從而報錯。

http://www.risenshineclean.com/news/45785.html

相關(guān)文章:

  • 有機蔬菜哪個網(wǎng)站做的更好溫州seo按天扣費
  • 網(wǎng)站制作公司興田德潤怎么聯(lián)系今天熱點新聞
  • 佛山網(wǎng)站代運營準度科技有限公司網(wǎng)站內(nèi)部鏈接優(yōu)化方法
  • 紹興做網(wǎng)站優(yōu)化大師電腦版
  • 免費商品列表網(wǎng)頁模板源代碼seo快速排名上首頁
  • 定制制作網(wǎng)站哪家好惠州seo網(wǎng)站推廣
  • 服裝官網(wǎng)網(wǎng)站建設(shè)百度推廣登陸后臺
  • 幫你省網(wǎng)站怎么做怎樣做網(wǎng)絡(luò)銷售平臺
  • 靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁的區(qū)別是什么魔貝課凡seo課程好嗎
  • 網(wǎng)站服務(wù)器打不開大數(shù)據(jù)培訓班需要多少錢
  • 邢臺市做網(wǎng)站seo工具不包括
  • 昔陽網(wǎng)站建設(shè)注冊域名在哪里注冊
  • php做門戶網(wǎng)站2024年最新時事新聞
  • 電影頻道做的網(wǎng)站廣告谷歌手機版瀏覽器官網(wǎng)
  • 小企業(yè)網(wǎng)絡(luò)營銷外包南寧seo產(chǎn)品優(yōu)化服務(wù)
  • wordpress建站好嗎武漢seo搜索優(yōu)化
  • 網(wǎng)絡(luò)營銷常用的方法seo 優(yōu)化技術(shù)難度大嗎
  • 專業(yè)做網(wǎng)站公司排名人工智能培訓機構(gòu)哪個好
  • 做壁畫的網(wǎng)站湖南網(wǎng)站優(yōu)化
  • 如何在搜索中找到自己做的網(wǎng)站設(shè)計模板網(wǎng)站
  • msn網(wǎng)站制作windows優(yōu)化大師怎么用
  • 做商業(yè)廣告有什么網(wǎng)站好推銷的北大青鳥職業(yè)技術(shù)學院簡介
  • 女人能做網(wǎng)站開發(fā)嗎世界杯比分
  • 做網(wǎng)站可以申請專利嗎優(yōu)化防疫措施
  • 非響應(yīng)式網(wǎng)站改響應(yīng)式百度推廣賬號
  • 淘寶了做網(wǎng)站賣什么好百度怎么優(yōu)化網(wǎng)站關(guān)鍵詞
  • 網(wǎng)站開發(fā)實施計劃與安排網(wǎng)絡(luò)推廣培訓
  • 定制網(wǎng)站前準備手機版怎么用百度快照
  • 廣東企業(yè)網(wǎng)站模板推薦長春網(wǎng)站優(yōu)化團隊
  • 保定專業(yè)做網(wǎng)站seo網(wǎng)絡(luò)貿(mào)易網(wǎng)站推廣