关于静态局部变量?!

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:50:16
把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。

后一句很好理解,但是前一句应该怎么理解 什么叫改变了存储方式 什么叫生存期
具体解释下!?

一个程序分为代码段,数据段,堆栈段,
函数被调用的时候使用的局部变量和参数入栈,调用结束了进入栈的局部变量和参数没有用了,就出栈,如果函数里有局部静太变量,那这个变量就不再被压入栈中,而是在数段中,不管函数被调用多少次,局部静太变量只有一个,会随着任何一次调用的改变而改变,直到程序结束,这个静太变量消失,而不是调用一次创建一次,调用结束后,从栈中消失

这个如果你学过数据结构和计算机组成的话很容易理解。
我文笔太差,实在难以用简短的话讲明白,不过可以跟你说一些简单的。

变量主要有存储于堆或栈上,像你在函数里面申请的变量就是在栈里分配的,所以函数结束它就被销毁,你申请的动态变量就是在堆中分配的,直到程序结束后太释放。
变量存在的时间或范围就是它的生存期。