| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 817 人关注过本帖
标题:有关引用函数返回赋值问题?
只看楼主 加入收藏
九天冥盟
Rank: 2
等 级:论坛游民
威 望:1
帖 子:77
专家分:20
注 册:2015-7-14
结帖率:36%
收藏
已结贴  问题点数:20 回复次数:2 
有关引用函数返回赋值问题?
int &shiyan(int &,int );
 void main()
{
  int n=5,m=6;
  int &a=shiyan(n,m);
  cout<<"a="<<a<<endl;
}
int &shiyan(int &x,int y)
{
   return x;
}
 问题:为什么return x;时,运行结果是正确的。当将其改为 return y;时运行结果就错了!!
  参数x,y不都是 局部变量吗?
  
搜索更多相关主题的帖子: 引用 函数 赋值 int return 
2017-10-31 20:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
你用的是什么编译器?它在编译时难道不告诉你 返回一个局部变量的引用是操蛋行为 ?

我用VC试了一下:报错 warning C4172: returning address of local variable or temporary
我用g++试了一下:报错 warning: reference to local variable 'y' returned
2017-11-01 08:26
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:10 
x是引用,引用的是来自外部的变量,所以返回x的引用是可以的。至于y,只能返回一个值
2017-11-01 13:49
快速回复:有关引用函数返回赋值问题?
数据加载中...
 
   



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

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