我是一步步f10调试的总结出的 i与j的在内存中变化。
j是静态全局变量默认初始化为0,fun2每次调用的过后都是1.
i是一个静态局部变量,i的值就是每次函数调用的结束的时的值。在测试代码中i最后值是10.
#include <iostream>
using namespace std;
static int j;
void fun1()
{
static int i = 0;
i++;
}
void fun2()
{
j = 0;
j++;
}
int main()
{
int k;
for (k=0; k<10; k++)
{
fun1();
fun2();
}
cout<<j<<endl;
return 0;
}