Sian 发表于 2014-3-7 22:33:24

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]
查看完整版本: static对局部变量的影响