37 lines
786 B
C
37 lines
786 B
C
|
#include <stdio.h>
|
|||
|
|
|||
|
// 定义一个静态局部变量
|
|||
|
// 在函数内部定义的使用static修饰的变量就是静态局部变量
|
|||
|
|
|||
|
void myfun()
|
|||
|
{
|
|||
|
// 如果普通局部变量不进行初始化,则默认是随机值
|
|||
|
// 如果静态局部变量不进行初始化,则默认是0
|
|||
|
int a; // 普通局部变量
|
|||
|
static int num; // 静态局部变量
|
|||
|
|
|||
|
printf("a = %d\n", a);
|
|||
|
printf("num = %d\n", num);
|
|||
|
}
|
|||
|
|
|||
|
void myfun1()
|
|||
|
{
|
|||
|
// 静态局部变量不会随着当前函数执行结束而释放空间,下次使用的还是之前的空间
|
|||
|
// 静态局部变量只会初始化一次
|
|||
|
static int num = 100;
|
|||
|
num++;
|
|||
|
|
|||
|
printf("num = %d\n", num);
|
|||
|
}
|
|||
|
|
|||
|
int main(int argc, char *argv[])
|
|||
|
{
|
|||
|
myfun();
|
|||
|
|
|||
|
myfun1();
|
|||
|
myfun1();
|
|||
|
myfun1();
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|