C语言入门之函数(5),第1张

C语言入门之函数(5),第2张

三。静态变量

静态变量的类型说明符是静态的。当然,静态变量属于静态存储方式,但属于静态存储方式的量不一定是静态变量。比如,外部变量虽然属于静态存储模式,但不一定是静态变量,必须由static定义,才能成为静态外部变量,或者静态全局变量。至于自动变量,前面已经介绍过,属于动态存储模式。但也可以使用static定义为静态自动变量或静态局部变量,从而成为静态存储模式。
从这个角度来看,变量可以用static重新解释,可以改变它原来的存储方式。

1.静态局部变量

通过在局部变量的描述之前添加静态描述符来形成静态局部变量。

例如:

静态int a,b;
静态浮点数组[5]={1,2,3,4,5 };


静态局部变量属于静态存储模式,具有以下特点:

(1)静态局部变量是在函数中定义的,但与自动变量不同,调用时存在,退出函数时消失。局部变量总是存在的,也就是说,它的生存期就是整个源程序。资料来源:www.examda.com

(2)虽然静态局部变量的生存期是整个源程序,但它的作用域仍然与自动变量相同,即只能在定义它的函数中使用。退出该功能后,虽然变量仍然存在,但无法使用。

(3)允许将初始值赋给结构类的静态局部量。在数组一章中,已经解释了数组的初始化。如果未指定初始值,系统将自动指定一个值0。资料来源:www.examda.com

(4)如果静态局部变量的基本类型在解释中没有给出初始值,系统将自动给出0值。但是,如果没有给自动变量一个初始值,它的值是不确定的。根据静态局部变量的特点,可以看出它是一个生存期为整个源程序的量。虽然离开定义它的函数后就不能使用了,但是如果再次调用定义它的函数,就可以继续使用,保存上次调用后留下的值。所以,当一个函数被多次调用,并且需要在调用之间保持某些变量的值时,可以考虑静态局部变量。虽然全局变量也可以达到上述目的,但全局变量有时会产生意想不到的副作用,所以最好使用局部静态变量。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C语言入门之函数(5)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情