| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 496 人关注过本帖
标题:新手求助!关于引用的一个简单问题
只看楼主 加入收藏
shyshit
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-8-10
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
新手求助!关于引用的一个简单问题
二级C++考试辅导书上有一段这样的编码:
int main()
{
    int i=5;
    int &r=i;r=7;
    cout<<i<<endl;
    return 0;
}
第二句不是把i的值赋给r的地址了吗?最后i为什么是7呢?希望明白的人讲解一下!
搜索更多相关主题的帖子: 简单问题 
2009-08-17 11:34
hyfl
Rank: 7Rank: 7Rank: 7
来 自:火星
等 级:黑侠
帖 子:113
专家分:552
注 册:2008-11-20
收藏
得分:0 
引用只是变量的另外一个名字而已,其实是一个东西。
在代码里给r赋值为7,就是把7赋值给了i。

“一切高手都是从菜鸟炼成的!”1099285180@
2009-08-17 14:09
shyshit
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-8-10
收藏
得分:0 
回复 2楼 hyfl

那跟:
  int i=5,r=7;
  int i=r;
是一回事吗?
2009-08-17 15:41
hyfl
Rank: 7Rank: 7Rank: 7
来 自:火星
等 级:黑侠
帖 子:113
专家分:552
注 册:2008-11-20
收藏
得分:5 
回复 3楼 shyshit

不一样,int i = 5, r = 7;
这样是声明了两个变量,它们在内存里的地址是不同的。

而且 int i = r;这个地方会有重复声明的错误,因为i已经声明过了。

引用可以理解为指针,int &r = i; 那么r就是指向了i的地址。但是和指针有区别。

“一切高手都是从菜鸟炼成的!”1099285180@
2009-08-17 19:56
明次
Rank: 5Rank: 5
来 自:China
等 级:职业侠客
帖 子:166
专家分:303
注 册:2009-1-11
收藏
得分:0 
看来LZ还不清楚引用。其实引用就是别名。
 &r=i  //这句就是r就是i的别名。你可以这样理解,虽然他们的名字不同,但他们都是同一个人。
 你给 r赋值就相当于给i赋值,因为他们是同一个“人”,只是名字不同而已罢了。

、明次℡!           QQ:604622530
2009-08-17 20:17
XIAO荣
Rank: 2
等 级:论坛游民
帖 子:87
专家分:20
注 册:2009-2-26
收藏
得分:5 
如果LZ有学过汇编的话,这个就容易懂了。
int &r=i;//数据i是存放在内存中的,这样子r就是数据i在内存中的地址,类似指针。
r=7;//数据i的地址r的指向内容本来是i的数值5的,但是现在把r指向的内容有赋值为7了。
结果i也就变为7了。
2009-08-18 11:07
easycpp
Rank: 2
等 级:论坛游民
帖 子:12
专家分:51
注 册:2009-8-18
收藏
得分:0 
引用不是指针,也不是地址
应该这么说,i与r其实是一个对象,它们对应的数据是同一份。关于这个问题,我已经放到我维护的一个FAQ上了。大家可以过去看看:[url="http://www.]C++ 问题集[/url]

[ 本帖最后由 easycpp 于 2009-8-18 14:03 编辑 ]

简单C++:www.
2009-08-18 13:58
王晓明
Rank: 2
等 级:论坛游民
帖 子:40
专家分:62
注 册:2009-3-12
收藏
得分:0 
引用是一个变量的别名,在这里其实i和r是同一个内存单元的名字,可以通过i或r来改变这个内存单元中的内容。输出的i其实是这个内存单元中的内容。
2009-08-18 14:24
快速回复:新手求助!关于引用的一个简单问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017280 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved