国产一区在线观看视频-国产一区在线免费观看-国产一区在线视频-国产一区在线视频观看-国产一区中文字幕在线观看-国产一线二线三线女

正在閱讀:新手入門:C++下的引用類型新手入門:C++下的引用類型

2005-02-26 15:47 出處:PConline 作者:管寧 責任編輯:xietaoming

  引用類型也稱別名,它是個很有趣的東西。在c++ 下你可以把它看作是另外的一種指針,通過引用類型我們同樣也可以間接的操作對象,引用類型主要是用在函數的形式參數上,通常我們使用它是把類對象傳遞給一個函數。

  引用對象采用類型名加上&符號和名稱的方式進行定義。例如:(int &test;),這里我們就定義了一個int類型的名為test 的引用,但是int &test;這樣的方式是不能夠被編譯成功的,因為引用的定義必須同時給應用進行賦值操作,這里的賦值并不是說把變量的值傳遞給引用,而是把引用指向變量,寫成這樣就對了:(int &test=變量名;)。

#include <iostream
using namespace std; 
 
void main(void

 
int a=10; 
int &test=a; 
test=test+2; 
 
cout << &a << "|" << &test << "|" << a << "|" <<test << endl; 
 
cin.get(); 
}

  觀察并編譯運行上面的代碼你會發現&a和&test的地址顯示是相同的,a和test的值顯示也是一樣的!

  結合前一個教程的內容我們來說一下const引用的相關內容,這里要特別注意,和前一個教程一樣帶const修飾的引用同樣也容易混淆概念!

  const修飾如果用在引用上會有一個特別之處,它的奧妙就在于可以進行不同類型的對象的初始化,而這一切在普通變量操作上是不可能的下面我們來看一個例子:

#include <iostream
using namespace std; 
 
void main(void

 
int a=10; 
//double &test = a + 1.2f; //這句就是錯誤的! 
const double &test = a + 1.2f; 
 
cout << &a << "|" << &test << "|" << a << "|" <<test << endl; 
 
cin.get(); 
}

  上面的代碼足夠說明問題了,這就是const修飾帶來的好處,但是聰明的人會在輸出的時候發現一個問題,就是a和test的值的輸出不同,按照最先說的道理應該可以改變a的值呀,為什么在這里卻有沒有能夠改變呢?

  道理是這樣的,const修飾過后的引用在編譯器內部是這樣進行變化的。

int a=10; 
const double &test = a + 1.2f;

  這樣的一段代碼在編譯器認為卻是下面的方式進行的

int a=10; 
int temp = a; 
const double &test = temp + 12.f

  這里其實是把a的值賦給了一個臨時temp 變量,而后test獲得的卻是temp+12.f 改變的是temp而不是a,所以就出現了a和test顯示的值不同的情況,這里要特別注意,這是一個很容易混淆的地方,在編寫程序的時候要特別仔細,以免出現了問題卻檢查不出為什么!

302 Found

302 Found


Powered by Tengine
tengine
主站蜘蛛池模板: 国产毛片久久精品 | 天天操天| 国内永久第一免费福利视频 | 四虎最新紧急更新地址 | 精品久久久中文字幕一区 | 成人a毛片在线看免费全部播放 | 日日干夜夜骑 | 全部免费国产潢色一级 | 四虎黄色网址 | 欧美成人一区二区三区不卡视频 | 男人的天堂欧美精品色偷偷 | 久久久亚洲国产精品主播 | 精品国产三级v | 亚洲日本一区二区三区在线不卡 | 全免费a级毛片免费看不卡 全免费a级毛片免费看视频免 | 色片在线免费观看 | 欧美黄色录像 | 久久久久亚洲精品美女 | 久久国产精品99国产精 | 午夜在线精品不卡国产 | 亚洲第一黄色网址 | 爱爱爱免费视频 | 国产精品麻豆a啊在线观看 国产精品麻豆高清在线观看 | 欧美日韩国产高清精卡 | 4虎最新网站 | 九九久久精品 | 免费一级大毛片a一观看不卡 | 在线中文字幕视频 | 奇米在线视频 | 久热官网 | 欧美怡红院免费全部视频 | 欧美九九 | 我爱52avαv永久网站 | 亚洲欧美日韩不卡一区二区三区 | 日日干日日干 | 俄罗斯毛片免费大全 | 国内精品久久久久尤物 | 99久久国产综合精品五月天 | 亚洲欧美一区二区三区国产精品 | 亚洲免费视频网址 | 97影院理论片手机在线观看 |