将static限定符用于在代码块中定义的变量——在代码块中使用staitc时,将导致局部变量的内存持续性为静态的。这意味着该变量只在该代码块中可用,但它在该代码块不处于活动状态时仍然存在。
因此在两次函数调用之间,静态局部变量的值将保持不变。
另外,如果初始化了静态局部变量,则程序只在启动时进行一次初始化。以后再调用函数时,将不会像自动变量那样再次被初始化。
举例子说会清楚点:
#include <iostream>
using namespace std;
const int ArSize = 10;
void strcount(const char * str);
int main ()
{
char input[ArSize];
char next;
cout << "Enter a line: " << endl;
cin.get(input, ArSize);
while(cin)
{
cin.get(next);
while(next != '\n')
cin.get(next);
strcount(input);
cout << "Enter next line (empty line