首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >int f(int &x) int f(int x)

int f(int &x) int f(int x)
EN

Stack Overflow用户
提问于 2013-02-11 10:13:26
回答 6查看 14.7K关注 0票数 0
代码语言:javascript
运行
复制
#include<stdio.h>
#include<conio.h>

int f(int & ,int );//function prototype

main()
{
  int x,p=5; //p is initialized to 5
  x=f(p,p);
  printf("\n Value is : %d",x);//print the value of x
  getch();
}

int f (int & x, int c)
{
c=c-1;
if (c==0) return 1;
x=x+1;
return f(x,c) * x; //recursion
}

产出: 6561

有人能解释一下我的程序流程吗?这个问题是从门开始的,我听不懂。这个函数似乎是以p= 5的值调用的。它是在函数f中用int &x表示的,问题就在这里。值i.e 5存储在x或x的地址中。

EN

Stack Overflow用户

发布于 2013-02-11 10:21:29

这段代码使用C++,这就是int &语法的意思。

引用基本上是指针的句法糖。因此,在调用f(p, p)时,函数参数xmain()中对p的引用,而c只是调用时值的副本。

这意味着f可以通过引用在main()中更改p的值。因为f递归地调用自己,将相同的引用传递给自己,所以它始终是对main()中的p的引用。

为了追踪回溯,我建议在f()内部的战略位置添加登录打印。

票数 7
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14810003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档