是這樣的。
你可以運行一下下面這個程序。
#include<stdio.h>
void?recursion(int?n)?{
if(n?>?5)?{
return;
}?else?{
printf("進入第%d次遞歸調(diào)用\n",?n);
recursion(n+1);?//遞歸,調(diào)用自己。?
printf("執(zhí)行了第%d次遞歸調(diào)用后的語句。\n",?n);?
}
}
int?main()?{
recursion(1);
return?0;
}
這個程序中
recursion(n+1);
是遞歸調(diào)用,而
printf("執(zhí)行了第%d次遞歸調(diào)用后的語句。\n",?n);
是位于遞歸調(diào)用后的語句。
這個程序的運行結(jié)果是
進入第1次遞歸調(diào)用
進入第2次遞歸調(diào)用
進入第3次遞歸調(diào)用
進入第4次遞歸調(diào)用
進入第5次遞歸調(diào)用
執(zhí)行了第5次遞歸調(diào)用后的語句。
執(zhí)行了第4次遞歸調(diào)用后的語句。
執(zhí)行了第3次遞歸調(diào)用后的語句。
執(zhí)行了第2次遞歸調(diào)用后的語句。
執(zhí)行了第1次遞歸調(diào)用后的語句。
可以看到,遞歸調(diào)用語句之前的printf語句執(zhí)行順序正常,而遞歸調(diào)用語句之后的語句執(zhí)行順序相反。