C++语言程序设计

| 例5-24

#include <iostream.h>
void main()
{
int i;
void f();
//函数说明
for(i=1;i<=5;i++)
f();
//函数调用
}
void f()
//函数定义
{
auto int j=0;
++j;
cout<<j<<endl;
}

程序中定义了函数f，其中的变量j 说明为自动变量并赋予初始值为0。当main中多次调用f时，j均赋初值为0，故每次输出值均为1。现在把j改为静态局部变量：

| 例5-25

#include <iostream.h>
void main()
{
int i;
void f();
for (i=1;i<=5;i++)
f();
}
void f()
{
static int j=0;
++j;
cout<<j<<endl;
}

由于j为静态变量，能在每次调用后保留其值并在下一次调用时继续使用，所以输出值成为累加的结果。