| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1770 人关注过本帖
标题:关于函数返回引用的问题
只看楼主 加入收藏
天外飞客
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-25
收藏
 问题点数:0 回复次数:11 
关于函数返回引用的问题
在用引用返回函数值时,不用在被调函数中开辟空间放返回值,,那么这个引用要不要开辟存储空间啊,
搜索更多相关主题的帖子: 函数 空间 返回值 
2005-05-07 11:50
笨笨鸟
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-5-10
收藏
得分:0 
说清楚点?
2005-05-11 23:28
冷酷无情
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-5-4
收藏
得分:0 
用变量的引用做函数形参是地址传递,如果在函数当中改变了形参的值,也就改变了实参的值,这个和用指针来做形参类似,但是二者也有本质区别,变量的引用就是变量的别名(比如你可以有几个名字,但是每个名字都是你一样),在函数执行过程中并不为这个引用开辟内存,而指针变量是有值的,是需要开辟内存单元的;

如果在函数中定义了一个变量(假设不是静态局部变量和静态数据成员),然后需要返回这个变量的值,那么在函数调用过程中要为这个变量开辟内存单元,当调用结束时释放内存。

不知道你是不是要问这个

2005-05-12 03:27
天外飞客
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-25
收藏
得分:0 
不是这个,,是这样的
……
int g_i;

int fun()
{
   ……
   return g_i ;
}

void main()
{
    ……
    int k=fun();
    ……
}
一般来说,在调用fun()完返回值时,会在fun的栈区生成一个临时变量,把g_i拷贝到临时变量,然后再把这个临时变量值赋给k。

那么如果返回的是一个引用,那么这会不会在栈区生成一个临时的变量呢??

2005-05-13 21:30
笨笨鸟
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-5-10
收藏
得分:0 

fun()的g_i和外面的g_i不是一回事吧?

我是菜鸟,还请大虾谈谈

2005-05-13 23:16
天外飞客
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-25
收藏
得分:0 
就是对同一个数据的操作。。。

2005-05-13 23:19
tary
Rank: 1
等 级:新手上路
帖 子:780
专家分:0
注 册:2004-10-5
收藏
得分:0 
我想引用的慨念你应该知道吧..
引用不同于指针.. 指针要分配内存空间..而引用不用分配内存空间,这一方面减少了内存的乱用情况啊.

┌→¨ ≮我可以学会对你很冷落≯¨←┐ │  <却学不╓══╦══╖会将爱> │ │¨←┐ ╭╩╮哭‖哭╭╩╮ ┌→¨│ └──┘收 ╲╱ ◇‖◇ ╲╱回└──┘
2005-05-15 10:08
天外飞客
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-12-25
收藏
得分:0 
引用肯定要分配空间拉,,不然怎么放啊,哈哈……
只是c++屏蔽了对引用的访问,所以逻辑上可以认为这样,,但是实际上就不是这样了的拉

2005-05-15 14:27
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
啊?引用好象不占空间吧?
2005-05-15 15:36
hu_sir
Rank: 1
等 级:新手上路
帖 子:208
专家分:0
注 册:2004-4-29
收藏
得分:0 
是不会开辟临时空间的!
2005-05-18 12:52
快速回复:关于函数返回引用的问题
数据加载中...
 
   



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

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