C++中递归和函数调用的问题~

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:29:35
例如下列这段代码```
#include<iostream>
using namespace std;
int f (int);
int main()
{
for (int i=0; i<=10; i++)
cout << " "<<i<<"! = "<<f(i)<<endl;
return 0;
}
int f (int number)
{
if (number <=1)
return 1;
else
return number * f(number-1);
}

number并没有初始化,那他的初始化值是多少啊?
还有f(i)和f(int number)到底是什么样的关系啊
弄的我好晕啊
有的地方懂,有的地方又很迷糊
没有完全理解

number是参数, f(i)调用时传进来的, 当i=0时, f(i) = f(0), 那number就=0啦, 当i=10时, f(i) = f(10), number=10;

f(int number)是定义函数, 说明函数调用函数f时要给他一个int的数, f(i)就是调用f(int number)啦, 这时把i的值给number

number是外传来的参数,当然看作已被初始化。外界传来是几它就是几。
这个程序很简单就是计算一个阶乘。你单步跟几下就明白了。

函数传参都没搞懂就来研究递归?? 不是你太浮躁就是你选的教材不好...