C语言函数嵌套的问题

#include <stdio.h>

void a()
{
void b();
puts("aaaa");
b();

}

void b()
{
a();
puts("bbbb");
}

main()
{
a();
b();
}

为什么这个程序打印不出bbbb
#include <stdio.h>

void a()
{
void b();
puts("aaaa");
b();

}

void b()
{

puts("bbbb");
a();
}

main()
{
a();
b();
}

改了一下,为什么这个程序不是死循环???

两个程序都是死循环,不过他们在运行的过程中,由于堆栈溢出所以操作系统结束掉该进程了。你可以在调试的时候在程序末尾加一个断点,看看能不能运行到程序末尾
第一个程序之所以没有打印bbb是应为在b函数中调用puts("bbb")之前调用a函数,这样一直递归下去,所以一直没有运行到puts("bbb")这一句!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-25
调a()时又调了b(),然后b()又调a(),还没来得及打印就一直这样调成了死循环,你把puts("");放到前面就知道是什么回事了

明明又是死循环
第2个回答  2011-04-25
单步调试看看就知道怎么走的了
相似回答