成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++詳解 引用的應(yīng)用

開發(fā) 后端
在C++中,有一個引用的概念。在這篇文章里,筆者將為大家詳解引用的應(yīng)用。

  在C++中,引用就是一個變量的別名,它需要用另一個變量或?qū)ο髞沓跏蓟陨怼R镁拖褚粋€人的外號一樣,例如:有一個人,他的名字叫做張旭,因他在家排行老三,別人給他取了一個外號叫張三,這樣,我們叫張三或張旭,指的都是同一個人。下面的代碼聲明了一個引用b,并用變量a進(jìn)行了初始化。

  1. int a = 5;  
  2. int &b = a; //用&表示申明一個引用。引用必須在申明時進(jìn)行初始化  

  考慮下面代碼:

  1. int a = 5;  
  2. int &b = a;  
  3. int c=3; //此處并不是將b變成c的引用,而是給b賦值,此時,b和a的值都變成了3  

  引用和用來初始化引用的變量指向的是同一塊內(nèi)存,因此通過引用或者變量可以改變同一塊內(nèi)存中的內(nèi)容。引用一旦初始化,它就代表了一塊特定的內(nèi)存,再也不能代表其他的內(nèi)存。

  那么引用和指針變量有什么區(qū)別呢?

  引用只是一個別名,是一個變量或?qū)ο蟮奶鎿Q名稱。引用的地址沒有任何意義,因此C++沒有提供訪問引用本身地址的方法。引用的地址就是它所引用的變量或者對象的地址,對引用的地址所做的操作就是對被引用的變量或?qū)ο蟮牡刂匪龅牟僮鳌V羔樖堑刂罚羔樧兞恳鎯Φ刂分担虼艘加么鎯臻g,我們可以隨時修改指針變量所保存的地址值,從而指向其他的內(nèi)存。

  引用和指針變量的內(nèi)存模型如下圖所示:

引用和指針變量的內(nèi)存模型

  在編寫程序時,很少直接使用引用,即用一個變量來初始化一個引用(int a; int &b=a),如果這么做,通過變量和引用都可以修改同一塊內(nèi)存的內(nèi)容,在程序中,就很容易出現(xiàn)問題,不知道此時內(nèi)存中的值到底是多少了。

  引用多數(shù)用在函數(shù)的形參定義上,在調(diào)用函數(shù)傳參時,我們經(jīng)常使用指針傳遞,一是避免在實參占較大內(nèi)存時發(fā)生值的復(fù)制,二是完成一些特殊的作用,例如,要在函數(shù)中修改實參所指向內(nèi)存中的內(nèi)容。同樣,使用引用作為函數(shù)的形參也能完成指針的功能,在有些情況下還能達(dá)到比使用指針更好的效果。

  下面,我們以一段程序的講解作為引用這一小節(jié)的結(jié)束。

  例:

  1. #include <iostream.h>  
  2.   //change函數(shù)主要用來交換a和b的值  
  3.   void change(int& a,int& b);  
  4.   void main()  
  5.   {  
  6.   int x=5;  
  7.   int y=3;  
  8.   cout<<"original x="<<x<<endl;  
  9.   cout<<"original y="<<y<<endl;  
  10.   change(x,y);   //此處如果用指針傳遞,則調(diào)用change(&x, &y),這樣很容易讓人迷惑,不知道交換的是x和y的值,還是x和y的地址?此處用引用,可讀性就比指針要好  
  11.   cout<<"changed x="<<x<<endl;  
  12.   cout<<"changed y="<<y<<endl;  
  13.   }  
  14.   /*在change()函數(shù)的實現(xiàn)中,我們采用了一個小算法,完成了a和b值的交換,讀者下來可以仔細(xì)研讀,細(xì)細(xì)體味一下(讀者還可以采用其他的方法,當(dāng)然也可以直接使用通常的實現(xiàn),定義一個臨時變量,完成a和b值的交換)*/ 
  15.   void change(int& a,int& b)  
  16.   {  
  17.   a=a+b;  
  18.   b=a-b;  
  19.   a=a-b;  
  20.   } 

【編輯推薦】

  1. C++常量引用正確應(yīng)用方法
  2. 條款5 引用是別名而非指針
  3. 如何更好的進(jìn)行C++引用?
  4. C++引用基本概念詳解
  5. 簡析C++函數(shù)參數(shù)引用問題
責(zé)任編輯:韓亞珊 來源: 中國IT實驗室
相關(guān)推薦

2024-01-18 10:27:30

C++引用函數(shù)

2010-02-02 10:33:22

C++引用

2010-02-05 17:49:24

C++常量引用

2023-09-13 14:42:08

typedefC++

2010-02-01 10:43:10

C++跨平臺應(yīng)用

2024-01-29 16:55:38

C++引用開發(fā)

2010-01-15 18:06:20

C++引用

2011-07-20 15:58:53

C++引用

2021-12-21 15:31:10

C++語言指針

2009-08-14 17:09:48

C#引用類型

2010-02-05 15:51:06

C++ explici

2010-02-01 15:59:09

C++逗號操作符

2011-04-20 09:50:45

Virtual

2011-07-14 23:27:05

C++引用

2012-02-13 10:18:42

C++ 11

2010-02-02 16:49:32

C++中文字符

2023-12-13 10:08:59

C++原子代碼

2010-02-02 11:16:28

C++異常

2023-11-09 23:56:21

2010-01-18 16:17:53

C++代碼
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国内精品伊人久久久久网站 | 日本天堂视频在线观看 | 亚洲男女视频在线观看 | 美女黄网站视频免费 | 免费一区在线 | 91精品国产综合久久久久久 | 国产精品久久久 | 五月天国产 | 国产精品视频一区二区三区 | 欧美成人精品 | 亚洲高清久久 | 91国内视频在线 | 自拍偷拍亚洲欧美 | 欧美日本韩国一区二区 | 一区在线免费视频 | 美女福利网站 | www.蜜桃av | a级毛片国产 | 国产中文字幕在线观看 | 日本a∨精品中文字幕在线 亚洲91视频 | 91精品国产自产精品男人的天堂 | 北条麻妃国产九九九精品小说 | 国产乱码精品1区2区3区 | 91欧美激情一区二区三区成人 | 日韩av电影院| 日本精品久久久一区二区三区 | 成人精品久久日伦片大全免费 | 91精品在线播放 | 影视先锋av资源噜噜 | 亚洲一区 中文字幕 | 91天堂网 | 一二三四在线视频观看社区 | 国产精品久久国产精品 | 欧美xxxx网站 | 国产精品日韩在线观看一区二区 | 国产精品毛片久久久久久久 | 黑人性hd | 欧美男人的天堂 | 91精品国产91久久综合桃花 | 欧美精品在线免费观看 | 中文字幕国产视频 |