一、static关键字
在C语言中
static可以用来修饰局部变量,全局变量和函数。不同情况下作用也不同。
(1)、修饰局部变量
局部变量一般存放于栈中,其作用域和生命周期都是在其定义的代码块内。当用static修饰局部变量时,它的生命周期会延长整个程序,且存放到了静态数据区。但是其作用域并没有发生改变,任然是局部变量。
注意:static修饰的局部变量只初始化一次。
看下边这个程序
通过调试发现 ret 最后的结果是5,这就证实了num只被初始化了一次。因为如果每次进入函数都要对num进行初始化的话,每次返回的应该是1,那么ret应该也是。
(二)、static 修饰全局变量
全局变量具有外部链接属