首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

突发奇想试一下死循环 ?该如何处理

2012-05-21 
突发奇想试一下死循环 ?#includeiostreamusing namespace stdvoid A()void B()int main(){A()B()re

突发奇想试一下死循环 ?
#include<iostream>
using namespace std;

void A();
void B();
int main()
{
  A();
  B();

  return 0;
}
void A()
{  
  staticint i=0;
cout<<i<<"\t";
i+=2;
B();
}
void B()
{
static int j=1;
cout<<j<<"\t";
j+=2;
A();
}



为什么结果到6152就结束了???


[解决办法]
stack overflow
[解决办法]
一直在调用栈空间总会用完的,VS好像是会提示的,不确定!
[解决办法]

探讨
stack overflow

[解决办法]
这不叫循环,这是无出口的间接递归。
当函数调用耗尽栈内存的时候也就结束了。
另外你的B();执行不到因为A();就已经没有出口了。
[解决办法]
探讨

5楼已经简单说明了。

如果不理解,去了解下栈的概念,了解下函数调用时的压栈操作。

热点排行