转自:
在函数里面声明:
static int 静态变量,会在静态存储区只进行一次初始化,下次调用直接赋值
int 每次调用都初始化一次,分配不同的内存地址
void f1()
{
static int i;
i=1;
if(i==1)
{
MessageBox("a");
i=2;
}
}
void f2()
{
static int i=1;
if(i==1)
{
MessageBox("a");
i=2;
}
}
f1是定义一个static 的 i 没有赋值 然后每次调用f1 i的值都赋1
f2顶一个static i 初值为 1
调用f2是只在第一次 static i=1 即初值为1 所以说
if(i==1)
{
MessageBox("a");
i=2;
}
只有一次为真