刚开始学C语言,有这个函数要解释,但实在是看不懂。
int uknown(int a, int b)
{
if (b == 1) return a;
else return a + uknown(a, b - 1);
}
例如,当我将函数与 printf 命令一起使用时:
#include <stdio.h>
int main()
{
printf ("Value = %i", uknown(3,4));
system("pause");
}
我得到的返回值为 12。但我很难理解计算是如何进行的。
最佳答案
这是一个 recursive通过加法将两个整数相乘的方法。该函数递归调用为
uknown(3,4) calls (since b != 1)
uknown(3,3) calls (since b != 1)
uknown(3,2) calls (since b != 1)
uknown(3,1) returns 3 to uknown(3,2) (since b == 1)
uknown(3,2) returns 3 + 3 = 6 to uknown(3,3)
uknown(3,3) returns 3 + 6 = 9 to uknown(3,4)
uknown(3,4) returns 3 + 9 = 12 to printf in main
关于c - 函数内的函数(引用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21534984/