woaiyun
驱动牛犊
驱动牛犊
  • 注册日期2003-05-17
  • 最后登录2006-12-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1117回复:3

来预测一下结果

楼主#
更多 发布于:2003-06-10 19:24
int a(int i)
{
if(i<=1)i=1;
else i=i*a(i-1);
return(i);
}
main()
{
int  j;
j=a(5);
}


对上面这个简单的程序,你想象的结果是什么?去用Keil编译一下看看!

在看下面的程序:
#include <math.h>
int a()
{
static int i=5;
if(i==0)return(1);
else
{
i-=1;
return((i+abs(1))*a());
}
}
main()
{
int  j;
j=a();
}
/////////////////////////////////////////
/////////////////////////////////////////
#include <math.h>
int a()
{
static int i=5;
if(i==0)return(1);
else
{
i-=1;
return((i+1)*a());
}
}
main()
{
int  j;
j=a();
}


回出现什么结果呢?请解释之



[编辑 -  6/10/03 by  woaiyun]

[编辑 -  6/10/03 by  woaiyun]
jacobqzl
驱动小牛
驱动小牛
  • 注册日期2001-10-10
  • 最后登录2005-04-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-11 09:15
 静态变量问题。
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-06-12 14:07
这不就是静态变量和递归调用?!
我思,故我在
woaiyun
驱动牛犊
驱动牛犊
  • 注册日期2003-05-17
  • 最后登录2006-12-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-16 19:26
我想不是静态变量的问题
如果设为外部变量,也是一样的结果
游客

返回顶部