CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

指针的引用?

楼主wklucky(一辈子的孤单)2005-11-07 16:11:52 在 C/C++ / C++ 语言 提问

指针的引用?这种用法一般用在什么情况下?具体是什么意思?  
  希望各位高手回答一下,最好代有例子,谢谢... 问题点数:20、回复次数:9Top

1 楼jiangabc(看贴不回)回复于 2005-11-07 16:21:15 得分 3

我也不懂,顶!  
  看到课本上有一个例子,初始化栈:  
  void   InitStack(LNode*   &   HS)  
  {  
          HS   =   NULL;  
  }  
  感觉多余  
  请教了```Top

2 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-11-07 16:36:05 得分 3

当然不一样了  
  指针的引用,相当于传递的是:     指针的指针,   这样指针的数值是可以改变的  
  而单传递指针,不传递指针的引用,那么指针指向的数据是可以改变,而指针本身是不可以改变的  
   
  引用和非引用的差异,最直观的区别就是传递的数值本身是否可以被改变  
  fun   (   int   a)  
  {  
          a   =   3;     //    
  }  
  fun1   (   int&   a)  
  {  
          a   =   4;     //    
  }  
  ...  
  main()  
  {  
        ....  
        int   a   =   8;  
        fun(a);     //   在   fun函数内部,a是等于3,但是当函数返回后,a依然是8,并没有变化  
        fun1(a);   //   这里,在fun1函数内部,a等于4,   函数返回后,a也是4  
  }  
   
  指针类型也一样  
  fun(int   *   pA);     //   pA的数值在函数返回后不会变化  
  fun(int*&   pA);     //   pA的数值在函数返回可能会发生变化,如果fun函数内部对pA赋值的话  
  Top

3 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-11-07 16:36:56 得分 3

void   InitStack(LNode*   &   HS)  
  {  
          HS   =   NULL;     //   函数返回后,   HS就是NULL了  
  }  
   
  void   InitStack(LNode*   HS)  
  {  
          HS   =   NULL;     //   函数返回后,   HS依然是传递进来的数值  
  }Top

4 楼wklucky(一辈子的孤单)回复于 2005-11-07 17:02:11 得分 3

但"指向整形的常量指针的引用"又有何用处呢?既然不需要改变指针的值  
  比如论坛上一个帖子写的  
  bool   detemin   (int   *   const   &a,   const   long   &sa,   int   *   const   &b,   const   long   &sb)  
  加不加引用有何作用?Top

5 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2005-11-07 17:29:02 得分 0

1   没有&就要加个*才能达到目的  
  也就是说,&   和   *   可以简单的理解为等价的,   那么有无它,类型是不一样的  
  2   用const表示,虽然使用的是引用,但是数值并不允许改变,防止程序当中对他进行修改Top

6 楼jiangabc(看贴不回)回复于 2005-11-07 18:20:24 得分 3

是不是这样:  
  const   修饰   &a   ,a   的被引用变量不可改变,a   可以改变.  
  int   *   修饰   &a   ,   表示   a   是一个整型指针.Top

7 楼jiangabc(看贴不回)回复于 2005-11-07 18:25:06 得分 3

哦不对,是   &a   是整形指针。  
  a   是一个整形指针的引用。  
  a   可以改变,a   的被引用变量不可改变。Top

8 楼zl0126()回复于 2005-11-07 19:18:53 得分 0

markTop

9 楼csjcrystal(水晶)回复于 2005-11-08 00:24:36 得分 2

但"指向整形的常量指针的引用"又有何用处呢?既然不需要改变指针的值  
  比如论坛上一个帖子写的  
   
  bool   detemin   (int   *   const   &a,   const   long   &sa,   int   *   const   &b,   const   long   &sb)  
  加不加引用有何作用?  
  =====================================  
  指针不能变,指向的内容可变Top

相关问题

  • 引用指针
  • 引用和指针??
  • 引用和指针
  • 引用与指针!
  • 指针与引用
  • 指针,引用问题!!
  • 引用与指针问题
  • 如何使用引用代替指针???
  • 指针和引用的优劣
  • 这是函数指针还是引用?

关键词

  • 指针
  • 函数
  • 数值
  • null
  • 引用
  • 函数返回
  • fun
  • 改变
  • 传递
  • 指向

得分解答快速导航

  • 帖主:wklucky
  • jiangabc
  • happy__888
  • happy__888
  • wklucky
  • jiangabc
  • jiangabc
  • csjcrystal

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo