#
i nclude "stdio.h"
main()
{
int i;
int fact();
for(i=0;i<5;i++)
printf("\40:%d!=%d\n",i,fact(i));
}
int fact(j)
int j;
{
int sum;
if(j==0)
sum=1;
else
sum=j*fact(j-1);
return sum;
}
能不能给我个明确的解释,谢谢!
c语言全局变量的意义?请问下面的一个程序中:定义了int j;有什么意义?
答案:5 悬赏:80 手机版
解决时间 2021-02-03 09:40
- 提问者网友:贪了杯
- 2021-02-02 14:21
最佳答案
- 五星知识达人网友:北城痞子
- 2021-02-02 14:56
全局变量可以供多个函数使用(包括一个函数的多次调用),是函数间传递信息最低级的方法,但是对于大型程序来说,全局变量如果设计不好非常容易导致问题,应该尽量避免。
这段程序不像是C的标准写法,能编译得过吗/
这段程序不像是C的标准写法,能编译得过吗/
全部回答
- 1楼网友:慢性怪人
- 2021-02-02 19:41
实际上输出是|8567 | -06d中的0实际上倍忽略了 下面程序验证了这一点 #include void main() { int k=8567; printf("|%-06d|\n",k); }
- 2楼网友:毛毛
- 2021-02-02 18:08
定义的 j 变量 只能在定义的 { } 里面使用,也就是在这里的fact里使用,但是在这里 已经在函数里传递了j进来,传递的j是最先定义的,所以它会覆盖掉你后来重定义的j。所以 int j; 相当于没写。 而且现在的main函数一般是int 返回的,不然新标准的编译器可能会报错。谢谢!
- 3楼网友:玩世
- 2021-02-02 16:58
这是至少三十年前的C语言程序了,这样的函数参数声明语法是1990年标准C语言之前才有的……
- 4楼网友:人间朝暮
- 2021-02-02 16:17
int fact(j)
int j;
这个j不是全局变量, 是函数fact()的参数。
zjfaok说的没错, 这种写法已经不符合现在的C语言标准了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯