static静态变量(静态全局和静态局部)

来源:互联网 发布:札幌住宿 知乎 编辑:程序博客网 时间:2024/05/16 12:30
static int a=1;void fun1(void){    a=2;  }void fun2(void){    int a=3;  }void fun3(void){   static int a=4;  }int main(int argc,char** args){      printf(“%d”,a);      fun1( );      printf(“%d”,a);      fun2( );      printf(“%d”,a);     fun3( );      printf(“%d”,a); }

运行结果是:1 2 2 2

  • fun3中定义的a虽然是静态的,但是是局部静态的,只在fun3这个函数中可见,并一直存在(值初始化一次)
  • 即:静态局部变量只对定义它的函数体始终可见,函数体执行完过后虽然还存在,但是无法被其他的使用了
0 0