请高手指教

luosha80 2003-01-01 09:26:24
我现在在学习C++,买了一本C++程序设计语言(特别版)的书在看,刚看到前几章,对其中的“引用(&)”看得不是太明白,不知哪位高手能给我讲解一下,最好能举出例子,先在这里谢谢了!
...全文
28 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
luosha80 2003-01-02
没有人来跟我讲讲吗?“引用&”的意义,怎么用??
回复
ydyuse 2003-01-02
假设n是m的一个引用(reference),m是被引用物(referent)。
int m;
int &n = m;
n相当于m的别名(绰号),对n的任何操作就是对m的操作。例如有人名叫王小毛,他的绰号是“三毛”。说“三毛”怎么怎么的,其实就是对王小毛说三道四。所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。
回复
shornmao 2003-01-02
引用相当于别名,也就是说可以用多个名字访问同一个内存区域。
例如
int i=5;
int &ref=i;
这样i和ref代表同一区域,以后不管是对ref还是对i的操作,都视作对同一内存的操作。
例如
ref=6; //i==6, ref==6
++i; //i==7, ref=7
从本质上来说,引用就是指针的替代品,但是必须在定义的时候初始化,而且不能再改变指向的目标,至于引用被引入C++的目的,主要是为了指针deference时候的需要*运算符的不太优雅的语法。
回复
windcsn 2003-01-02
&的用法比较多,一般在C语言里面这个是取地址符的意思,也就是以便变量的存放在内存中的地址。一般用在给指针赋值和通过参数传递。例如:
void SetA(int a)
{
a = 2;
}
这段程序a的值未曾被改变,一直是原来的值,在函数内部生成了一个临时变量,地址已经改变,所以即使改变里面的值,已经不是原来的地址了
void SetA(int &a)
{
a = 2;
}
这段程序a的值被改变,因为参数用的传址,里面直接修改的是a同地址的变量
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.4w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2003-01-01 09:26
社区公告
暂无公告