Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1243043
  • 博文数量: 298
  • 博客积分: 10050
  • 博客等级: 上将
  • 技术积分: 3277
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-14 13:36
文章分类
文章存档

2015年(7)

2012年(1)

2010年(5)

2009年(55)

2008年(73)

2007年(160)

我的朋友

分类: C/C++

2007-10-23 12:24:14

(1)引用在创建的同时必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值.  
   
  (2)不存在NULL引用,引用必须与合法的存储单元关联;而指针则可以是NULL.  
   
  (3)引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用;而指针在任何时候都可以改变为指向另一个对象.给引用赋值并不是改变它和原始对象的绑定关系.  
   
  (4)引用的创建和销毁并不会调用类的拷贝构造函数  
   
  (5)在语言层面,引用的用法和对象一样;在二进制层面,引用一般都是通过指针来实现的,只不过编译器帮我们完成了转换.  
   
  总的来说:引用既具有指针的效率,又具有变量使用的方便性和直观性.  
   
  1值传递  
   
  void   Func(int   x)  
   
  {  
   
  x=x+10;//修改的是n在堆栈中的拷贝x  
   
  }  
   
  int   n=0;  
   
  Func(n);  
   
  cout<<"n="<   
  2指针传递  
   
  void   Func2(int   *x)  
   
  {  
   
  (*x)=(*x)+10;//修改指针x指向的内存单元的值  
   
  }  
   
  int   n=0;  
   
  Func(&n);  
   
  cout<<"n="<   
  3.引用传递  
   
  void   Func3(int   &x)  
   
  {  
   
  x=x+10;//修改的是x引用到的对象n  
   
  }  
   
  int     n=0;  
   
  Func3(n);  
   
  cout<<"n="< 
******
引用只是一个变量的别名,程序中的应用不占据实际的内存空间,而指针则是一个数值,其意义就是被指向数据所存放的内存地址,而指针同样也是一个数据,他的存放需要占据内存空间。    
   
   
  使用引用来代表其它变量时,对于整个程序而言会更加安全。而使用指针可以使得整个程序更加灵活。
阅读(1003) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~