四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

新手入門:C++下的引用類型


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

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

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

  結(jié)合前一個教程的內(nèi)容我們來說一下const引用的相關(guān)內(nèi)容,這里要特別注意,和前一個教程一樣帶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修飾帶來的好處,但是聰明的人會在輸出的時候發(fā)現(xiàn)一個問題,就是a和test的值的輸出不同,按照最先說的道理應(yīng)該可以改變a的值呀,為什么在這里卻有沒有能夠改變呢?

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

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,所以就出現(xiàn)了a和test顯示的值不同的情況,這里要特別注意,這是一個很容易混淆的地方,在編寫程序的時候要特別仔細,以免出現(xiàn)了問題卻檢查不出為什么

AspNet技術(shù)新手入門:C++下的引用類型,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 招领启事的格式| 孕妇照几个月拍最好| 《七律长征》的简笔画| 暗夜深海电视剧免费观看| 两小无猜电影| 四大名捕 电影| 董卿简历| 香港之夜完整版在线观看免费| 6套电影频道节目表| 北京卫视今日电视剧| 地下车库设计规范| 自拍性视频| 法律援助中心免费写诉状| 大船| 新有菜免费在线观看| 豪血寺一族2出招表| footjob videos| 出彩中国人第三季 综艺| 傻少爷大结局| 职业探索怎么写| kaori全部av作品大全| 吴彦祖《偷窥无罪》| 锤娜丽莎演的电视剧| 美女写真116| 好看电影视频| 在线理论视频| 欧布奥特曼普通版普通话中文版| 胖女人做爰全过程免费看视频| 2025年最旺财聚财壁纸| 左左木明希| stylistic device| lanarhoades黑人系列| 除暴2 电影| 六年级上册英语书翻译| 骨妹| 香港之夜在线观看完整版| 少年派2高清免费观看电视剧预告 成全免费观看高清电影大侦探 | 泪桥简谱| 电影继父| 若月玛丽亚| 儿子给妈妈过生日,妈妈幸福感言|