指针和引用的区别

原创 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
  • 下载

指针与引用的区别与联系,哪个更安全?为什么

引用是一种没有指针语法的指针.与指针一样,引用提供对对象的间接访问.      虽然引用也可以被用作一种指针,但是象对指针一样用一个对象的地址初始化一个引用却是错误的。 例如:      in...

C++指针与引用的区别

  • 2012-03-11 09:42
  • 72KB
  • 下载

指针与引用的区别

★ 相同点:     1. 都是地址的概念;     指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。     ★ 区别:    ...
  • zgaoq
  • zgaoq
  • 2017-02-09 23:25
  • 109

指针与引用的区别

  • 2015-05-12 22:26
  • 18KB
  • 下载

C++小知识之指针和引用的区别

温故而知新,指针和引用的概念,大学时都已熟知,实际用的时候往往又有些疑惑,故深入探究一下。 从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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