#include
int &fun(int a, int b)
{
static int c;
c = a + b;
return c;
}
void main()
{
using namespace std;
if (fun(1, 2) == fun(3, 4))
cout << "相等" << endl;
system("pause");
}
为什么输出的是想等?还有函数返回的是c的引用 引用不适应个有个名字么?比如
int a=12;
int &b=a;
b是a的引用 所以函数返回c的引用不也应该有个类似b的别名么?(如下)
int *&()
{
int *p=new int;
int *&b=p;
return b;
}
这段代码有问题么?(即使有问题还是想问问)还有返回的b该拿什么变量接收?
关于”引用”的一个小问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2016-11-19 15:51关注
关键是这个 int &fun 引用符号,它使得返回值指向静态变量c,所以两次计算后,前面一次计算的结果被后面覆盖,比较最后进行,就相等了。
int *&() 缺少函数名
int *&foo() 这样可以编译通过解决 无用评论 打赏 举报
悬赏问题
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来