请高手指教

luosha80 2003-01-01 09:26:24
我现在在学习C++,买了一本C++程序设计语言(特别版)的书在看,刚看到前几章,对其中的“引用(&)”看得不是太明白,不知哪位高手能给我讲解一下,最好能举出例子,先在这里谢谢了!
...全文
98 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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同地址的变量

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧