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

关于静态变量的一个笔试题
最近参加了一场笔试,其中有一个题是这样出的:
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.静态局部变量具有可继承性。