麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

C++之引用變量

2019-11-14 08:50:57
字體:
來源:轉載
供稿:網友

引用是定義變量的別名:

int rats;

int & rodents = rats;

則rodents是rats的別名,他們的值和地址都相同,操作rodents和操作rats一樣。注意在聲明引用時必需將其初始化,不能拆開先聲明再賦值。以上引用聲明實際上時如下代碼的偽裝表示:

int * const PR = &rats;

引用變量的主要途徑時用作函數的形參,函數將使用原始數據,而不是其副本。同指針一樣,引用也為函數處理大型結構和類提供方便途徑。確實,引入引用主要是為了這些類型的,而不是用于基本的內置類型。

比較以下三個函數頭,體會引用作為函數參數的作用:

void swap_1(int & a, int & b);//即用a、b作為參數的引用

void swap_2(int * p, int * q);

void swap_3(int a, int b);

另一種情況,如果意圖讓程序只是用參數值而不修改,又想用引用作為參數,則應該使用常量引用:

double refcube (const double & ra);

目前,對于形參為const引用的C++函數,如果實參不匹配,其行為將類似于值傳遞,使用臨時變量儲存值而確保原始數據不被修改。

總結起來,應盡可能將引用聲明為const:

1、避免無意中修改數據;

2、能處理const和非const實參,否則只能接收非const數據;

3、能夠正確生成并使用臨時變量。

引用主要用于結構和類,雖然有些時候也能使用值傳遞實現,但與復制原始結構的拷貝相比,使用引用更節省時間和內存。不僅作為參數,還可以作為返回值。返回值,從概念上說,這個值被復制到一個臨時位置,然后調用程序使用這個值。相比把整個結構復制到一個臨時位置,使用引用作為返回值,效率更高。

返回引用時最重要的一點是hi,避免返回函數終止時不復存在的內存單元引用。如下:

const free_throws & clone ( free_throws & ft)

{

free_throws newguy;

newguy = ft;

return newguy;

}

返回時,相當于free_throws & tmp = newguy;然而函數調用完后,newguy釋放,其別名(而不是值拷貝)tmp也沒了。避免的最簡單方法是,返回一個作為參數傳遞給函數的引用。

總之,不要返回局部對象的引用;同理,不要返回指向局部變量的指針。

為避免對返回的引用賦值而被修改,因此最好將const應用于返回值。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91精品国产乱码久久久久久久久 | 午夜热门福利 | 久久精品视频日本 | 久久99精品久久久久久秒播蜜臀 | 成人一级片毛片 | 久久羞羞视频 | 久久久婷婷一区二区三区不卡 | 国产成人在线免费看 | 青青草最新网址 | 黄色片网站在线看 | 羞羞的视频免费在线观看 | 久久免费视频一区二区三区 | 久久精品伊人网 | 片在线观看 | 欧美日韩在线播放 | 亚洲第九十九页 | 国产精品剧情一区二区在线观看 | 欧美亚洲啪啪 | a级在线 | 亚洲精中文字幕二区三区 | 国产一区二区在线观看视频 | 欧美日韩夜夜 | 日韩专区在线 | 日本残忍极度灌浣肠视频 | 久草成人在线 | 在线亚州 | 线观看免费完整aaa 一二区成人影院电影网 | 日韩视频二区 | 成人福利视频在线 | 欧美亚洲一级 | 九九久久视频 | 中文字幕一区二区三区久久 | 久草在线综合网 | 国产精品久久久久久238 | h色网站在线观看 | 综合精品| 欧美一区二区精品夜夜嗨 | 天堂精品久久 | 在线观看一区二区三区四区 | 久久久久免费精品国产小说色大师 | 杏美月av |