解释下这个程序的过程

来源:百度知道 编辑:UC知道 时间:2024/07/08 00:43:21
#include <stdio.h>
void dg(void)
{
char c;
if((c=getchar())!='\n') dg();
putchar(c);
}

int main(void)
{
dg();
return 0;
}
最好从如何入栈如何出栈说起,然后从windows内存读出顺序说说。

它没有栈 它是通过函数堆栈来完成你所说的栈
函数堆栈是在函数调用的时候起保存函数返回位置和函数内变量等等东西的堆栈
第一次调用函数dg()它先输入一个字符保存在c里,再次调用函数dg() 就如我刚说的c保存在前一个函数的状态里,
依次执行,到输入的是回车的时候开始执行每个函数的输出,就是以前每个函数的状态
我还是建议你看看递归函数

问得好,我是来学习的...

学会使用软件 ,C++里有很好的调试功能,可以设断点,可以逐步运行。 递归是一个方法就是自己调自己,逆着看理解