指针和引用的比较

来源:互联网 发布:飞机杯买什么牌子 知乎 编辑:程序博客网 时间:2024/06/06 21:08

      虽然使用引用和指针都可以间接访问另一个值,但它们之间有两个重要的区别。第一个区别在于引用总是指向某个对象:定义引用时没有初始化是错误的。第二个重要区别则是赋值行为的差异:给引用赋值修改的是改引用所关联的对象的值,而并不是使引用与另一个对象关联。引用一经初始化,就始终指向同一个特定对象(这也是为什么引用必须在定义时初始化的原因)。

      举例如下:

1.程序将一个指针赋给另一个指针:

      int ival=1024,ival2=2048;

      int *pi=&ival,*pi2=&ival2;

      pi=pi2;

赋值结束后,pi所指向的ival对象值保持不变,赋值操作修改了pi指针的值,使其指向另一个不同的对象。

2.使用两个引用赋值:

      int &ri=ival,&ri2=ival2;

      ri=ri2;

这个赋值操作修改了ri引用的值ival对象,而并非引用本身。赋值后,这两个引用还是分别指向原来关联的对象,此时这两个对象的值相等。

原创粉丝点击