关于指针与引用的比较

原创 2013年12月04日 10:22:00

                   关于指针与引用的比较

       很长时间对指针和引用的区别一直没有搞明白,起初常常把他们当成是一样的,今天就专门研究一下,指针和应用的比较:
       指针和应用都是间接的访问另一个值,有时候常常会把他们搞混,认为是一样的,其实不是的,关于他们两个的区别有一下3点:
1>引用总是指向某个对象的,如果在定义引用时没有初始化就会出错的。
2>赋值行为是有差别的,给引用赋值时,直接修改的引用所指对象的值,并不是使应用与另一个对象关联而改变其值,而对指针赋值时,直接修改的是指针的指向,使其与另一个对象关联起来而修改指针的值。
3>对于作为函数参数时,引用和指针起的作用是一样的,都是指向实参的,通过函数对形参进行某种处理,是可以直接影响实参的,他们并不是实参的备份。
       关于第三点,可以继续深入了解一下,函数调用时,参数为指针,引用和值传递的比较!指针和引用都会修改实参,而值传递时不会修改实参的。
       例子如下:
    指针的情况:
     int ival1=1024,ival2=2048;
     int *pi1=&ival1,*pi2=&ival2;
     pi1=pi2;
       赋值结束后,pi1所指向的值是不变的,赋值操作修改了pi指针的值,只是指向另一个不同的对象。
      引用的情况:
      int &ri1=ival1,&ri2=ival2;
      ri1=ri2;
     赋值后,这两个引用还是分别指向原来关联的对象。此时这两个对象的值相等!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

比较c++中的值传递,引用传递,指针传递

从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。 而引用是一个别名,它在逻辑上不是独立的,它的存...

比较c++中的值传递,引用传递,指针传递一

理清值传递、引用传递和指针传递三者之间的不同,对理解C++是十分有益的。 原文网址:http://windshowzbf.bokee.com/2631833.html 在vc6.0下,写了个简单的...

c语言和c++中值传递、指针传递和引用传递的比较和区别

c语言和c++中值传递、指针传递和引用传递的比较和区别

c++引用和指针的比较

引用是C++中的概念,初学者容易把引用和指针混淆一起。  一下程序中,n是m的一个引用(reference),m是被引用物(referent)。  int m;  int &n = m;  n...
  • why_up
  • why_up
  • 2011年09月13日 20:59
  • 271

【程序设计】引用与指针的比较

引用于指针的比较与区别

java中基本概念引用及和C语言中指针比较

第一点:什么是引用类型       引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。       在java里面除去基本数据类型的其它类型都...

引用与指针的比较

引用与指针的比较 引用是C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 intm; int...

C++ Primer学习笔记(7)——指针形参和引用形参的比较

前面讲到了巧用引用形参可以达到很好地目的。还有一种是指针形参,它用的比较少,专用于数组形参。问:什么时候应使用指针形参?什么时候应使用引用形参?两者的优缺点是什么?...

C++中值传递、指针传递和引用传递的比较

C++引用与指针的比较 引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int...

指针和引用的比较

(—)使用指针变量做形参,实现变量互换 (1)#include using namespace std; int main() { void swap( int * ,int ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于指针与引用的比较
举报原因:
原因补充:

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