static对局部变量的影响
源文件:/*
1、在局部变量中,static第一个作用初始化为0;
2、第二个作用保持局部变量b的持久不被释放,变量被存储在静态区;
*/
#include <stdio.h>
void test();// 函数声明;
int main() {
test();//a=1,b=1
test();//a=1,b=2
test();//a=1,b=3
// 重复调用函数三次;
// b = 10;// 此处不能调用b,局部变量有局部变量的特性,static也改变不了这一点;
return 0;
}
void test() {
int a = 0;// 定义一个局部变量a,如果不初始化为0,变量值随机;
static int b;// 定义一个static局部变量a,系统自动初始化为0,并保持变量直到程序结束才被释放;
a++;// a自加;
b++;// b自加;
printf("a=%d, b=%d\n", a, b);// 输出a、b的值;
}输出结果为:a=1, b=1
a=1, b=2
a=1, b=3
页:
[1]