阅读文章 http://www.cnblogs.com/Kane_zzt/archive/2009/05/18/1459697.html
归纳下来有两大点:
1. 使得变量或者函数对其他源文件隐藏,限制作用域。这样在不同文件中可以定义同名函数和同名变量,防止命名冲突。变量还可以定义在函数内,这样仅有这个函数可以访问。
变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
2. 保持变量内容的持久性。static变量和全局变量均存储在静态存储区,而在这个区域的变量会在程序刚开始运行时就完成唯一一次初始化。并且它的默认初始化是0。这是与栈变量和堆变量的区别。