码迷,mamicode.com
首页 > 其他好文 > 详细

引用和指针的比较

时间:2016-01-13 23:23:38      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

以下内容摘抄自:高质量程序设计指南:C++C语言(第三版) 林锐 P152

引用符号:“&”

在此并非取地址的意思。

int m;

int& n=m;

n是变量m的一个引用(Reference),m是被引用物(Referent).

n相当于m的别名,对n的任何操作都是对m的操作。所以n既不是m的拷贝,也不是指向m的指针,其实n就是m自己。

 

引用的特性及其与指针的比较如下:

1.引用在创建的同时必须初始化,即引用到一个有效的对象。而指针在定义的时候不必初始化,可以在定义的任何地方重新赋值。

2.不存在NULL引用, 引用必须与合法的存储单元关联;而指针则可以是NULL。如果把一个引用初始化为0,例如:

const int& rInt = 0;

其语义并非是把引用初始化为NULL,而是创建一个临时的int对象,并用0来初始化它,然后再用它来初始化引用rInt,该临时对象将会一直保留到rInt销毁的时候才销毁。

所以,不要用字面常量来初始化引用

3.引用一旦被初始化为指向一个对象,它就不能被改变为对另一个对象的引用;而指针在任何时候都可以改变为指向另一个对象,给引用赋值并不是改变它和原始对象的绑定关系,例如:

 int  a = 10, b = 1000;

int& rInt = a;  //rInt 引用到a, rInt = 10;

rInt = b;    //rInt 和a 都变成了 1000;

 

引用和指针的比较

标签:

原文地址:http://www.cnblogs.com/zhehan54/p/5128632.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!