首页
社区
课程
招聘
[求助]请问35页的一句话怎么理解?
发表于: 2012-1-22 00:37 5849

[求助]请问35页的一句话怎么理解?

2012-1-22 00:37
5849
C++中,引用和指针没有分别。只是引用是通过编译器实现寻址,而指针需要手动寻址。

上面红色字体的,能否给出解释呢?...

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 422
活跃值: (115)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
lz你可以看看两者的反汇编代码  应该就能明白了
2012-1-22 20:35
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我觉得就是引用就像是加了const...地址编译器已经决定好了...但是指针却不同...即使在程序运行中你也可以改变指向的对象或者空间...可以去访问其他地址.....不知道对不对...
2012-1-22 21:11
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
引用在定义的候就得确定,引用的对象,引用和对象的联系是通过,引用这个变量名字对应的内存区域保存的是(引用对象的)地址。由于引用在定义的时候已经初始化,所以在编译阶段就能够知道引用的地址。所以在编译阶段,引用直接替换为对象的地址了。如果定义了AAA这个引用变量,在汇编代码中应该没有这个字符的标识,因为让编译器直接替换成地址了。跟你定义#define PI 3.1415926是一样的,编译阶段直接就把PI替换成了3.1415926一样吧。跟你定义int AAA不一样吧。AAA可能还存在于二进制代码中。
指针定义的时候可以初始化,也不可以初始化,不初始化的恶果就是把申请的那个内存区域的垃圾数据当成初始化的,导致非法使用。你用指针干嘛?不就是指向某个内存区域,或者从某个内存区域取值,使用目的是程序员确定的,当然的“手动”使用了。一般定义指针不是定义成 = NULL;的形式,使用的时候指向一个内存区域。。。。
2012-2-17 13:47
0
雪    币: 89
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
读这本书需要较为深入的理解c++,这点可以看看c++ 编程思想
2012-2-17 14:31
0
游客
登录 | 注册 方可回帖
返回
//