(C)关于递归调用后面语句的执行顺序

针对这个问题 ,做了一个小的测试 

将数字前面加个a,b作以区分

#include
int fun(n)
{

	printf("a%d\n", n);
	if (n>1)
		fun(n - 1);
	printf("b%d\n", n);
}
int main()
{
	fun(4);
	return 0;
}

当执行到fun(n-1)的时候,后面的printf要不要执行呢?
 

编译器上跑一手

(C)关于递归调用后面语句的执行顺序_第1张图片

 由此不难看出 fun(n-1)直接进入了下一次的递归直到递归结束

然后从里到外依次执行递归语句后面的语句

你可能感兴趣的:(C,c语言)