c语言中静态变量需要自己释放?那外部变量属于静态存储方式,书上说静态变量的生存期是整个程序的运行期
c语言中静态变量需要自己释放?那外部变量属于静态存储方式,书上说静态变量的生存期是整个程序的运行期间,难道它会在程序运行结束后自动释放掉占用的存储空间?...
c语言中静态变量需要自己释放?那外部变量属于静态存储方式,书上说静态变量的生存期是整个程序的运行期间,难道它会在程序运行结束后自动释放掉占用的存储空间?
展开
2个回答
展开全部
对,一个运行的程序属于一个进程,进程是由操作系统管理的,程序结束了,该程序所占用的资源会由操作系统来回收。
静态变量的静态:变量占用的存地址不释放,也就是说它的地址它从头到尾一内直占着,容不给其他内存单元占用而已,其本身的值是可以改变的。
动态的变量:比如调用函数体里定义的变量,在函数执行后便释放出去,把有用的地址资源贡献给其他量,释放以后如果你用指针来打印这个地址的值的话,就很有可能不是原来的值了。
扩展资料:
静态变量也可以用于存储常数。具体来说,静态变量(全局变量及汇编语言里定义的符号亦同)可用const,constant或final(根据语言决定)等关键字标识,这时其值就会在编译时设定,并且无法在运行时改变。
编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区;为防止常数变量被错误的指针写入覆盖,亦可在这块区域启用内存保护机制。
参考资料来源:百度百科-静态变量
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询