static 到底是干什么用的啊
解决方案 »
- 批处理如何实现telnet登陆并进行一些简单命令
- 按照这网址http://hi.csdn.net/space.php?uid=4023163&do=album&id=15368里的画面设计个程序给100分
- vb 关于比较字符
- 如何将picturebox里的图片分割成几个小的图片并保存
- 关于listbox的操作
- 在线等待--100分 (棋盘覆盖的完整程序,高手帮忙啊)
- 为什么VB写的东西在2000下正常运行而在98下却运行出错?(高分相赠!)
- 内存溢出(错误 7)请求帮助
- 水晶报表的问题,总是出现重复的记录,N条重复N次。
- 有报酬劳动
- VB与三层架构的问题!
- FORM中那里能设置不用按网格来移动
7
9
是对的。因为,每次fac的 c 变量都被保存int fac(int a)
{
int b=0;
static int c=3;
b++;c++;
/*
三次执行,结果分别是:
a=0 b=1 c=4
a=1 b=1 c=5
a=2 b=1 c=6其中a是局部变量,以参数为准
每次执行的时候,因为b是普通变量,所以每次都重新计算,都是1
c是static类型,数字被保存,每次都增加
*/
return a+b+c;
}
main()
{
int a=3,j;
for(j=0;j<3;j++) printf("%d\n",fac(j));
}
5
7
9
static 的作用是将变量定义为静态的,即变量c的值不会因为重新调用该函数而被初始化为3,他始终保持上一次计算后的结果,三次计算中c的值分别为4、5、6。
/*这里a被重新定义了,按调用fac(j)中的j的数值为准*/
{
int b=0;
static int c=3;
b++;c++;
/*
三次执行,结果分别是:
a=0 b=1 c=4
a=1 b=1 c=5
a=2 b=1 c=6其中a是局部变量,以参数为准
每次执行的时候,因为b是普通变量,所以每次都重新计算,都是1
c是static类型,数字被保存,每次都增加
*/
return a+b+c;
}
main()
{
int a=3,j;
for(j=0;j<3;j++) printf("%d\n",fac(j));
}