社区
C++ 语言
帖子详情
引用就是自身没有地址的指针么?
Liby
2011-06-23 09:25:53
耗在指针引用这两个章节的时间都有半个月了
是这个理么?
...全文
260
19
打赏
收藏
引用就是自身没有地址的指针么?
耗在指针引用这两个章节的时间都有半个月了 是这个理么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
langshanglibie
2011-06-24
打赏
举报
回复
另外一个名字而已。
Liby
2011-06-24
打赏
举报
回复
VS2010下win32控制台应用程序运行时按alt+8直接关了- =。。。
pathuang68
2011-06-24
打赏
举报
回复
指针和引用的声明方式:
声明指针: char* pc;
声明引用: char c = 'A'
char& rc = c;
它们的区别:
①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。
②从内存分配上看,程序为指针变量分配内存区域,而不为引用分配内存区域,因为引用声明时必须初始化,从而指向一个已经存在的对象。引用不能指向空值。
③从编译上看,程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变指向的对象(指针变量中的值可以改),而引用对象不能改。这是使用指针不安全而使用引用安全的主要原因。从某种意义上来说引用可以被认为是不能改变的指针。
④不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针的要高。因为在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。
⑤理论上,对于指针的级数没有限制,但是引用只能是一级。如下:
int** p1; // 合法。指向指针的指针
int*& p2; // 合法。指向指针的引用
int&* p3; // 非法。指向引用的指针是非法的
int&& p4; // 非法。指向引用的引用是非法的
注意上述读法是从左到右。
详情,请参考:
http://blog.csdn.net/pathuang68/archive/2009/04/14/4071672.aspx
赵4老师
2011-06-24
打赏
举报
回复
指针即地址
引用即别名
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编并单步执行一遍不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编并单步执行。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”
提醒:
“学习用汇编语言写程序”
和
“VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编并单步执行一遍。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编并单步执行。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!
luciferisnotsatan
2011-06-24
打赏
举报
回复
引用就是别名,外号
辰岡墨竹
2011-06-24
打赏
举报
回复
引用不是指针,引用是编译器编译时自动将其替换成别的变量地址。
qq120848369
2011-06-24
打赏
举报
回复
指针是变量,地址存储于指针.
内存的访问通过地址,而地址存在指针里.
Liby
2011-06-24
打赏
举报
回复
谢谢大家啦,该怎么结贴呢。以前发的帖子也没结贴的~~~
翻越寒武
2011-06-24
打赏
举报
回复
变量名可以说是地址的名称,该变量前用&就取得地址了。引用又时是别名是因为它绑定地址了,就像指针指向了该地址一样
wo_de_fen_dou
2011-06-24
打赏
举报
回复
12楼说的很完整 很好
qingcairousi
2011-06-24
打赏
举报
回复
引用和指针不同。指针在运行时是有实体的,也就是说,是有内存地址来存放这个指针的。而引用则不同,引用只是在编程的时候作为别名使用,编译之后就变成了所引用的那个对象了。所以,在运行时,指针值可以改写。而在运行时,既然不存在“引用”这一说,自然也就无法改写“引用值”了。
nfer_cn
2011-06-24
打赏
举报
回复
[Quote=引用 7 楼 libylovexixi 的回复:]
不纠结了,学后面的先。。。
[/Quote]
对,等用到的时候,慢慢就理解了
Liby
2011-06-23
打赏
举报
回复
不纠结了,学后面的先。。。
至善者善之敌
2011-06-23
打赏
举报
回复
引用是别名,指向同一个地址,所以只能被初始化一次
高性能架构探索
2011-06-23
打赏
举报
回复
引用怎么说了,其实是个别名
有时候说是个指针,但又不确定
huang_555
2011-06-23
打赏
举报
回复
变量别名吧!!!
Defonds
2011-06-23
打赏
举报
回复
别名。
CGabriel
2011-06-23
打赏
举报
回复
搞不清楚你为什么这样想的。。没有地址的指针有存在的价值么。。
liutengfeigo
2011-06-23
打赏
举报
回复
暂时理解为:不能改变指向的指针吧.
其实不是...
精通C语言
指针
指针
被誉为C语言的精髓、C本质上是加了一层语法糖的汇编,引进当时先进的函数,保留了汇编强大的
地址
直接访问功能 ——
指针
,使其高效灵活。本课程是黄强老师对于
指针
的一次专题讲解,相信能给大家带来收获!
【C语言】
引用
和
指针
的区别?
指针
:本身有自己的
地址
,可以单独存在。
引用
和
指针
的区别:
指针
和
引用
都是
地址
的概念,
指针
指向一块内存,它的内容是所指内存的
地址
;
引用
是某块内存的别名。 程序为
指针
变量分配内存区域,而不为
引用
...
指针
和
引用
的区别
什么时候使用
指针
?什么时候使用
引用
?这两者实在容易混淆,在此我详细介绍一下
指针
和
引用
。
指针
和
引用
的定义 维基百科中这样解释
指针
: 在计算机科学中,
指针
(英语:Pointer),是编程语言中的一类数据类型及其...
指针
的
指针
的
地址
,
指针
自身的
地址
,
指针
指向的
地址
理解
指针
的
指针
,
指针
指向的
地址
,还有自身的
地址
之间的关系有些复杂,浅谈一下自己的理解。 #include <iostream> //#include <fstream> int test(int a, int b); int main() { using namespace std; ...
指向
指针
的
引用
与指向
引用
的
指针
引用
只是变量的一个别名,
引用
只能
引用
变量,并且只能
引用
一次,不能
引用
A再
引用
B,
引用
没有
自己的
地址
#include<iostream> using namespace std; int main() { int a = 10; int & b = a; b = 20;...
C++ 语言
64,691
社区成员
250,497
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章