关于c语言的函数声明

[复制链接]
查看11 | 回复5 | 2020-5-18 12:05:06 | 显示全部楼层 |阅读模式
int fact(j)
int j;
{
int sum;
if(j==0)
  sum=1;
else
  sum=j*fact(j-1);
return sum;
}
如上面得代码:在c语言中声明函数时是 类型 +函数名()
类型+变量名;可是为什么在函数体中还有int sum;我想要知道的是可不可以把int sum放在与intj同一位置,如果不行是为什么?

回复

使用道具 举报

千问 | 2020-5-18 12:05:06 | 显示全部楼层
因为函数jiec()是你自己定义并编辑的,在C语言中凡是操作员自己定义的函数都要在使用前申明,在C语言中系统自带的函数是通过include语句进行引用定义的,比如字符函数通过include进行申明,即你要引用的字符函数都在string.h里定义了...
回复

使用道具 举报

千问 | 2020-5-18 12:05:06 | 显示全部楼层
可以的,如int fact(int j,int sum){if(j==0)  sum=1;else  fact(j-1,j * sum);}递归时候,用return将值返回函数,这样程序的易读性比较强,你说的方法也是可以的,建议使用return的方法...
回复

使用道具 举报

千问 | 2020-5-18 12:05:06 | 显示全部楼层
看的专业资料太旧了,换,在c语言中声明函数时是 类型 +函数名(参数列表)。sum是局部变量,只在函数体内有效。j是带入函数的一个变量。修改如下:int fact(int j){int sum;if(j==0)  sum=1;else  sum=j*fact(j-1);return sum;}...
回复

使用道具 举报

千问 | 2020-5-18 12:05:06 | 显示全部楼层
int sum 在函数体内是定义局部变量 sum. 而 int j 是声明函数的参数类型,因而 int sum 是不能放到 int j 那的。...
回复

使用道具 举报

千问 | 2020-5-18 12:05:06 | 显示全部楼层
应该是 类型 +函数名(类型+变量名)int fact(int j) //这个表示返回的函数类型是int,int j是形参...{int sum;if(j==0)  sum=1;else  sum=j*fact(j-1);return sum;}可以在函数体中定义新的变量......
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行