为了账号安全,请及时绑定邮箱和手机立即绑定

C的返回值,具体返回到了哪里

比如下面这段代码

#include<stdio.h>
int factorial(int n){
	int result;
	if(n<0)
	{
		printf("输入错误!\n");
		return 0;
	}
	else if(n==0 || n==1)
	{
		result=1;
	}
	else
	{
		result=factorial(n-1)*n;
	}
	return result;
}

int main(){
	int n=5;
	printf("%d的阶乘=%d\n",n,factorial(n));
	return 0;
}

三种情况分别有三个不同的返回值,那么这些返回值最后返回到了哪里,又对程序运行的最终结果产生了什么影响

正在回答

2 回答

一共有return 0;  return result;  return 0; 三次返回值,第一个是当满足条件时,把0返还给函数,相当于复位,

第二次是吧result的值返还给函数,这里result=factorial(n-1)*n,经过计算可得=120,后面在主函数main处调用; 第三次是把0返还主函数main。      望采纳

2 回复 有任何疑惑可以回复我~
#1

大西young 提问者

非常感谢!
2017-03-21 回复 有任何疑惑可以回复我~

这不是函数递归么  你可以设n=3,然后自己心里或手动模拟这段程序;再试试n=4,n=5 应该会明白的

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926020    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

C的返回值,具体返回到了哪里

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信