注册 登录
编程论坛 C语言论坛

大神们!帮忙解释一下这道题得输出过程呗

dmj520 发布于 2020-12-02 09:03, 1157 次点击

#include<stdio.h>
void fun(int n,int *p)
{
int a;
if(n==1) *p=n;
else
{
fun(- 1,&a);
*p=a+1;
printf("%d",a);
}
}
int main( )
{
int x=0;
fun(3,&x);
printf("%d\n" ,x);
return 0;
}
1 回复
#2
风过无痕19892020-12-02 10:57
回复 楼主 dmj520
这个程序没有输出!
程序运行后,以实参整数 3 和 0 的地址调用函数 fun(3, &x);然后就在 if (n == 1) 和递归调用语句 fun(-1, &a); 两条语句之间反复来回运行
1