#include "stdafx.h"
int add(int i, int& nRst)
{
if (i > 100000)
return nRst;
nRst += i;
i++;
return add(i, nRst);
}
int _tmain(int argc, _TCHAR* argv[])
{
int nRst = 0;
int i = 0;
nRst = add(i, nRst);
printf("%d\n", nRst);
getchar();
return 0;
}
崩溃原因如图:(栈溢出)
从程序栈的调用情况来看,递归到了4699层才崩掉,比我预估的1000好太多了。。。
不过4699这个数字对于程序来说并不是很大,所以平时在写代码的时候还是要注意一下,不要递归太深了orz