小智 7

void func()
{
    static int static_var=1;
    int non_static_var=1;

    static_var++;
    non_static_var++;

    cout<<"Static="<<static_var;
    cout<<"NonStatic="<<non_static_var;
}

void main()
{
    clrscr();
    int i;
    for (i=0;i<5;i++)
    {
        func();
    }
    getch();
}
Run Code Online (Sandbox Code Playgroud)

以上输出为:

Static=2
Nonstatic=2

Static=3
Nonstatic=2

Static=4
Nonstatic=2

Static=5
Nonstatic=2

Static=6
Nonstatic=2
Run Code Online (Sandbox Code Playgroud)

静态变量保留其值,而非静态或动态变量在每次调用函数时初始化为"1".希望有所帮助.