static int 和 int 区别


转自:

在函数里面声明:

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; 
} 
只有一次为真 


你可能感兴趣的:(C语言)