指针和引用的区别

原创 2007年09月29日 18:10:00
 
1.       指针可以为空(null)但没有空引用,引用必须初始化,并关联某个具体存在的对象。
char *pc = 0;          // set pointer to null
char& rc = *pc;        // make reference refer to
                       // dereferenced null pointer
 
string& rs;             // error! References must
                        // be initialized
 
string s("xyzzy");
string& rs = s;         // okay, rs refers to s
 
2.       指针初始化后可以改变,使它指向其它对象,但引用初始化后就一直与初始化它的对象关联,而不能改变。
string s1("Nancy");
string s2("Clancy");
 
string& rs = s1;         // rs refers to s1
string *ps = &s1;        // ps points to s1
 
rs = s2;                 // rs still refers to s1,
                         // but s1's value is now
                         // "Clancy"
 
ps = &s2;                // ps now points to s2;
                         // s1 is unchanged
 
3.       应该使用引用的一种情况:当实现运算符(operator)时,返回一个引用而不要返回一个指针。
vector<int> v(10);       // create an int vector of size 10;
                         
v[5] = 10;               // the target of this assignment is
                         // the return value of operator[]
如果operator[]返回一个指针,则有:
   *v[5] = 10;
这使*v[5]看起来像个指针容器。
 
4. 建议:如果不能确保所关联的对象一直存在,或是不能肯定会一直关联此对象,那么最好使用指针,否则可以考虑引用。 

指针和引用的区别

  • 2014年12月07日 15:02
  • 24KB
  • 下载

c++引用与指针的区别(着重理解)

★ 相同点:     1. 都是地址的概念;     指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。     ★ 区别:     1. 指针是一个实体,而引用仅是个别名; ...

C++指针与引用的区别

  • 2012年03月11日 09:42
  • 72KB
  • 下载

详解c++ 引用(reference)与 指针(pointer)的区别与联系

引用(reference) 与指针(pointer)之间有什么区别和联系呢?我相信,对于很多初学c++的程序猿来说,不是一件简单的事.那么在c++中,引用与指针到底有什么联系和区别呢?要弄清楚这个问题...

指针与引用的区别

  • 2015年05月12日 22:26
  • 18KB
  • 下载

指针传递和引用传递的区别

  • 2013年01月22日 16:34
  • 19KB
  • 下载

c++中引用传递与指针传递的区别

从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 而引用是一个别名,它在逻辑上不是独立的,它的存...
  • a129439
  • a129439
  • 2011年11月30日 20:53
  • 376
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指针和引用的区别
举报原因:
原因补充:

(最多只允许输入30个字)