我刚开始学习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/