C语言中带指针的递归
如果你想手工处理,你应该在一张纸上画一个堆栈,在每次递归调用之前推送x,y,z,w的值,最后弹出它们。由于我们在过程中有一个递归调用,我认为这很容易做到。手工得到的结果是什么?这是一个写得非常糟糕的递归,很难理解。它除了迷惑人之外还有别的目的吗?我用手拿着1 4 1 2 \4 2 6 \9 4 5 14。在那之后,我不知道如何继续。这是一个考试中的练习。你可以使用你的调试器来查看你的代码正在做什么。。。C语言中带指针的递归,c,function,pointers,recursion,C,Function,Pointers,Recursion,如果你想手工处理,你应该在一张纸上画一个堆栈,在每次递归调用之前推送x,y,z,w的值,最后弹出它们。由于我们在过程中有一个递归调用,我认为这很容易做到。手工得到的结果是什么?这是一个写得非常糟糕的递归,很难理解。它除了迷惑人之外还有别的目的吗?我用手拿着1 4 1 2 \4 2 6 \9 4 5 14。在那之后,我不知道如何继续。这是一个考试中的练习。你可以使用你的调试器来查看你的代码正在做什么。。。 #include <stdio.h> int x=2,y=4,z
#include <stdio.h>
int x=2,y=4,z=17,w=3,count=0;
void p(int z,int *x){
*x= 3*z - *x;
int w=*x+z;
printf("%d %d %d %d \n",*x,y,z,w);
if(*x<=y){
p(*x+1,&w);
printf("%d %d %d %d \n",*x,y,z,w);
}
}
int main(void){
p(1,&x);
printf("%d %d %d %d \n",x,y,z,w);
return 0;
}
1 4 1 2
4 4 2 6
9 4 5 14
4 4 2 9
1 4 1 4
1 4 17 3