#include <stdio.h>
void reverse(int i);
int main()
{
reverse(1);
}
void reverse(int i)
{
if (i > 5)
exit(0);
printf("%d\n", i);
return reverse(i++);
}
#include <stdio.h>
void reverse(int i);
int main()
{
reverse(1);
}
void reverse(int i)
{
if (i > 5)
return ;
printf("%d ", i);
return reverse((i++, i));
}
第一个为什么会堆栈溢出,不是有i++么?
第二个为什么又可以?
i++ 传的参数是++之前的值,每次调用的都是 reverse(1); 所以会不停的递归 直到溢出
void reverse(int i)
{
if (i == 0) { printf("\n"); return; }
printf("%d", i % 10);
reverse(i / 10);
}