CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  非技术区

非高手,勿挠,谢谢合作。。。。引用与指针的地址

楼主gmaxajtg(星星)2003-09-04 18:37:54 在 C/C++ / 非技术区 提问

 
  在学习引用时,我和我的同学产生了分岐;我觉得引用本身也有地址,书上有这样一句话:“C++没有提供访问引用本身地址的方法,因为它与指针或其他变量的地址不同,它没有任何意义。”(<<C++程序设计教程>>     钱能著)但是我的同学看了同一本书却得出了完全相反的结论,他认为引用本身是没有地址的,引用的地址和被引用的对象的地址是一样的。我们谁也说服不了谁。  
          这个问题我也问过任课老师,但两个老师也给了我完全相反的答案,把我越搞越糊涂了。  
          请您给我详细的说一下这个问题,谢谢!  
   
   
  问题点数:20、回复次数:16Top

1 楼steedhorse(晨星)回复于 2003-09-04 19:09:28 得分 6

或许你们都是对的,只是考虑问题的角度不同。  
  但从使用效果和语法上看,引用一旦初始化后,其语义、语法和被引用对象是没有任何区别的。  
   
  至于编译器是怎么做到这一点的,是否用到了指针。我的建议是不要去关心这个问题,因为C++标准并没有对编译器的实现方案做出规定,只要编译器能够正确编译我们的程序,它爱怎么实现就怎么实现。Top

2 楼lth_81(上海男生)回复于 2003-09-04 19:20:49 得分 0

我个人认为:  
  引用变量本身在初始化的时候是被分配内存空间的,而其存储的内容就是引用对象的地址。其根本就是与指针一模一样。  
  记得前一阵子论坛里有一篇文章就是讨论指针和引用的区别。Top

3 楼aflyinghorse()回复于 2003-09-04 19:55:05 得分 2

引用被当作被引用对象的别名  
  去引用的地址就是取对象的地址  
   
  引用可以看作常量指针Top

4 楼windyguy()回复于 2003-09-04 20:28:43 得分 3

呵呵,我觉得引用很可能像数组一样,Expert   C里面有对数组及指针区别的详细论述。  
  我认为引用不像指针,更像数组名,引用本身并没有像指针那样的单独空间。  
   
  查下语言规范吧,或者做一下实验。使下能否对引用取地址就好了嘛。Top

5 楼Tinybaby(喝蚊子的牛奶)回复于 2003-09-04 20:32:20 得分 3

这个问题在本质上可能是一回事  
  但由于C++编译器的在安全检查上对两者的处理不同,引起我们产生不同的观点Top

6 楼madasoft(madasoft)回复于 2003-09-04 20:34:43 得分 0

引用到底有没有占用存储空间?写段小小的代码,看汇编吧。  
  我认为没有。可俺不是高手:(Top

7 楼xueweizhong(薛卫忠)回复于 2003-09-04 21:43:34 得分 6

1)  
      按照C++STD98:  
      具体地方我记不清楚了,翻译成中文大致是这样:  
        <<“标准不规定引用是否占有内存”>>  
      那么为了符合标准,引用当然是不能取地址的。  
   
  2)  
      但实际使用过程中却给人造成错觉:  
      /**  
        *  
        */  
      int   a;  
      int&   b   =   a;  
      int*   address   =   &b;  
   
      这里的address指向的是引用指向的对象a的地址。  
      所以事实上你没有办法获得引用本身的地址,    
       
  3)  
      当然这个所谓的地址也没有任何用处。  
   
  4)  
      得出的结论是:  
      “讨论‘引用的地址’就是在讨论一件‘子虚乌有’的事情”。  
  Top

8 楼glasswing(蜻蜓飞飞)回复于 2003-09-04 23:25:40 得分 0

问题是,如果引用的地址让你通过某种不正当的手段得到了,你准备拿它干什么呢?修改这个地址的内容吗?这样是不合法的,因为引用一旦初始化后就决不改变了   :)Top

9 楼chanet(牧师)回复于 2003-09-04 23:37:21 得分 0

 
   
  任何变量都有它的存在地址~  
   
  引用只不过是作为一个指针变量,指用被引用的变量  
  Top

10 楼gmaxajtg(星星)回复于 2003-09-08 20:39:49 得分 0

谢谢你们。。。Top

11 楼gmaxajtg(星星)回复于 2003-09-08 20:40:17 得分 0

怎么给分呀。。。Top

12 楼minghui000(沉迷网络游戏)回复于 2003-09-08 21:17:47 得分 0

你想怎么给就怎么给吧。。呵呵Top

13 楼maojincxj(scottpeck)回复于 2003-09-08 23:00:04 得分 0

请看c++   effective,  
  里边说的很详细,  
   
  "非高手,勿挠"这句话比较不爽Top

14 楼windyguy()回复于 2003-09-09 11:07:21 得分 0

楼上的,楼主是说自己非高手,叫大家不要讽刺吧?  
  难道是说非高手不要进来打扰?呵呵,有比较严重的歧义。Top

15 楼gmaxajtg(星星)回复于 2003-09-11 14:52:01 得分 0

呵呵。。。。  
  RE:maojincxj(毛巾)    
  我是来求解的,可不是要知道看什么书。。。。  
  在GOOGLE里可以找出很多来。这样一来,我就少了不少朋友。。。  
    RE:minghui000(绿豆冰好好味)  
  我想给,可是这个论坛他不听我的话呀。。。。Top

16 楼gmaxajtg(星星)回复于 2003-09-13 00:23:27 得分 0

RE:windyguy()  
  是呀。。说得对!!!  
  如果我是高手。。。。  
  就不会问这问题了。Top

17 楼lyr311(老刘:别总在CSDN上逛!!!)回复于 2003-12-16 22:11:43 得分 0

Mark!Top

相关问题

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

关键词

  • c++
  • 指针
  • 编译器
  • 引用
  • 地址
  • 变量
  • 数组
  • 非高手
  • 初始化
  • 对象

得分解答快速导航

  • 帖主:gmaxajtg
  • steedhorse
  • aflyinghorse
  • windyguy
  • Tinybaby
  • xueweizhong

相关链接

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

广告也精彩

反馈

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