| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 630 人关注过本帖
标题:下面一段程序的返回结果是多少?为什么?
只看楼主 加入收藏
sunyw2008
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-10-31
收藏
 问题点数:0 回复次数:3 
下面一段程序的返回结果是多少?为什么?
#include<string.h>
#include<stdio.h>
int ff(int n)
{
    static int f=1;
    f=f*n;
    return f;
}
main()
{
    int I;
    for(I=1;I<=5;I++);
    printf("%d\n",ff(I));
}
搜索更多相关主题的帖子: 结果 
2008-11-03 18:06
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
1!~5!(1~5的阶乘)
原因是ff函数中的f为静态变量,每次调用该函数结束后f都保留原来的值
但你这段程序好像是不对劲啊,怎么for循环后面还有个“;”?

[[it] 本帖最后由 zxwangyun 于 2008-11-3 18:47 编辑 [/it]]
2008-11-03 18:44
Seaj666666
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-3
收藏
得分:0 
结果是 6
for(I=1;I<=5;I++); //执行完后 I=6
printf("%d\n",ff(I)); //调用 int ff(int n) 计算完返回f=6 输出
2008-11-03 18:47
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
printf("%d\n",ff(I));
这句是调用一次ff函数后输出f的值
又因为你用了下面这句:
for(I=1;I<=5;I++);
执行完了之后,I=6(你的判断条件为I<=5)

所以此时你调用ff函数相当于:
就是f=f*I
结果为6
2008-11-03 19:01
快速回复:下面一段程序的返回结果是多少?为什么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021240 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved