递归程序对空间占用率高,如果值很大,会吃掉所有能用的空间,导致程序非正常终止。而循环(for || while)占用的空间是固定的。
// for循环
void PrintN(int N){
int i;
for (i=1; i<=N; i++){
printf("%d\n", i);
}
return;
}
int main(){
PrintN(1000000);
}

// 递归
void PrintN(int N){
if (N){
PrintN(N - 1);
printf("%d\n", N);
}
}
int main(){
PrintN(10000);
本文对比了递归和循环在程序中的使用效果,指出递归虽然简洁但可能导致内存占用过高,甚至使程序崩溃,而循环则空间占用固定,更加稳定。
3453

被折叠的 条评论
为什么被折叠?



