1,static定义局部变量和普通局部变量的对比:
static定义的变量具有记忆功能,可以保存上次修改的数值,而普通局部变量没有此功能。
#include<stdio.h>
static int g_j = 0;
void fun_s_static()
{
static int s_i = 0;
s_i++;
printf("fun_s_static:s_i=%d\n",s_i);
}
void fun_s()
{
int s_i = 0;
s_i++;
printf("fun_s:s_i=%d\n",s_i);
}
void fun_g_static()
{
g_j++;
printf("fun_g_static:g_j=%d\n",g_j);
}
int main()
{
int i;
for (i=0;i<10;i++)
{
fun_s_static();
fun_s();
fun_g_static();
}
}
代码运行结果如下:
总结如下:static定义的局部变量可以保存之前的数值,也可以用全局变量来代替,但是我们在项目中也是用static定义来使用。