在C STATTIC

S

sacrpio

Guest
喜的朋友,
这里的问题在C?

无效玛尼()

静态廉政1 = 5;
如果( - 1“0)
主要();
printf(“%d个”,1);


执行此代码后
, 正在打印0 0 0 0 0。为什么?有谁解释。
我所理解
, 它应该打印Ø只。

谢谢

 
首先,我看到几个C错误。也许这就是你想要的:

代码:

#包括<stdio.h>廉政主体(无效)



静态廉政1 = 5;

如果( - 1“0)

主要();

printf(“%d个”,1);

返回0;



 
我已经做了一些修改
, 这使得它更清楚发生了什么。主要是什么所谓的无印刷5次
, 直到1 = 0。想象一下
, 作为一个连锁店。那么最后一个主要是通过印刷完成= 0。出现这种情况
, 直到所有调用的函数返回(5次)。

一个很好的例子递归函数

<img src="http://www.edaboard.com/images/smiles/icon_rolleyes.gif" alt="眼珠" border="0" />
Mik

代码:无效的main()



静态廉政1 = 5;

静态廉政乙= 0;printf(“%d个进入主\ N”的, 二);

如果( - 1“0)

主要();

printf(“%d个\ N”型,1);

printf(“%d个离开主\ N”型,B组- );


 
像自动变量,静态变量也局部的声明它们的块。它们之间的区别是
, 静态变量不消失的功能不再有效。如果控件又回到相同的功能再次静态变量有他们的最后一次同样的价值观。

这里回合呼唤5次
, 直到变'甲'相同的功能主要是0,最后对'A'是0值。然后
, 它类似于析因计算的WHERE当U呼叫实际上是乘法指令用先出原则末被使用。
在这里
, 我们调用函数五倍从而产生输出包含五个零。

 
嗨,
无效玛尼()

静态廉政1 = 5;
如果( - 1“0)
主要();
其他的
printf(“%d个”,1);


现在它仅打印0,u必须0 0 0 0 0印刷由于退货ü所有的要求主要有。

 
代码:

无效玛尼()



静态廉政1 = 5;

如果( - 1“0)

主要();

printf(“%d个”,1);

 

Welcome to EDABoard.com

Sponsor

Back
Top