阅读:1169回复:3
来预测一下结果
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] |
|
沙发#
发布于:2003-06-11 09:15
静态变量问题。
|
|
板凳#
发布于:2003-06-12 14:07
这不就是静态变量和递归调用?!
|
|
|
地板#
发布于:2003-06-16 19:26
我想不是静态变量的问题
如果设为外部变量,也是一样的结果 |
|