国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

基于指針pointers和引用references的區別分析

2019-11-26 16:08:38
字體:
來源:轉載
供稿:網友

指針用“*”和“->”操作符,引用用"."操作符,當然這是表面的區別。

    1、引用必須代表一個對象,沒有所謂的空引用。指針可以為NULL。即引用必須有初值,指針不然。所以在使用pointers之前,必須測試它是否為null。references不需要測試。

    2、pointers可以被重新賦值,指向另一個對象,reference總是指向(代表)它最初獲得的那個對象:

復制代碼 代碼如下:

string s1("Nancy");
string s2("Clancy");

string &rs = s1;      //rs指向s1.
string *ps = &s1;  //ps指向s1.
rs = s2;                 //rs仍然代表s1,
                             //但是s1的值變成了“Clancy”


ps = &s2;             //ps現在指向s1,
                            //s1沒有變化


    3、還有一些情況需要使用references。例如實現某些操作符的時候。最常見的例子是operator[]。這個操作符很特別的必須返回某種“能夠被當做assignment賦值對象”的東西。

    4、結論:當你知道你需要指向某個東西,而且絕不會改變指向其他東西,或是你實現一個操作符而其語法需求無法由pointers達成,你應該選擇references。任何其他時候,請采用pointers。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆德县| 毕节市| 普洱| 富顺县| 文成县| 东光县| 定结县| 武宁县| 盐山县| 乌海市| 星子县| 什邡市| 巴马| 南平市| 彭泽县| 淳安县| 东至县| 南汇区| 孙吴县| 陕西省| 凌海市| 江孜县| 孙吴县| 濮阳市| 塘沽区| 济南市| 苏尼特左旗| 武威市| 年辖:市辖区| 天长市| 河源市| 大英县| 日喀则市| 克东县| 行唐县| 淳化县| 南宫市| 安福县| 阿合奇县| 桓台县| 宁阳县|