科创园

科创园地,分享技术知识,为科技助力发展,贡献一己之力。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

静态变量static关键字使用与动态变量的区别

Posted on 2011-11-14 21:35  科创园  阅读(4165)  评论(0编辑  收藏  举报

为什么用到静态变量?

变量存储有两种方式:静态和动态;动态变量在程序执行时分配存储单元,当所在程序段结束时,自动将这些存储单元释放,静态变量存储在永久性的存储单元中,在下次执行该程序段时仍然使用原来的存储单元。

因此,静态变量的生存周期将一直延长到其所在的整个程序运行结束。
测试代码:
#include<stdio.h>
void sum();
void main()
{
 int a=3;
 static int b;
 printf("a=%d,b=%d\n",a,b);
 sum();
 sum();
}
void sum()
{
 int a=2; 
 static int b=10;
 a+=10;
 b+=20;
 printf("a=%d,b=%d\n",a,b);
}