首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于静态变量的一个笔考题

2012-11-06 
关于静态变量的一个笔试题最近参加了一场笔试,其中有一个题是这样出的:int count(int i){static int count

关于静态变量的一个笔试题
最近参加了一场笔试,其中有一个题是这样出的:
int count(int i)
{
  static int count=0;
  count=count+i;
  return (count);
}

int main(void)
{
  int i,j;
  for(i=0;i<=5;i++)
  {
  j=count(i);
  }
  cout<<j<<endl;
  return 0;
}

程序最后返回的结果是15,断点调试的时候发现除了第一次执行count函数的时候执行了“static int count=0;”这行代码,其他时候都自动跳过了,这是怎么回事?

[解决办法]
这个就是static 的特性

只有第一次的时候初始化,以后都不在初始化,
[解决办法]
1.静态局部变量在程序开始执行的时候就始终存在,也就是说它的生命期为整个源程序。
2.静态局部变量的生命期虽然为整个源程序,但是其作用域仍与自动变量相同。
3.静态局部变量的初始化是在编译时进行的。在定义时用常量或者常量表达式进行赋值。未赋值编译时系统自动赋值为0
4.静态局部变量具有可继承性。

热点排行