首页 理论教育 C语言程序设计:动态存储和静态存储

C语言程序设计:动态存储和静态存储

时间:2023-11-23 理论教育 版权反馈
【摘要】:变量的存储类型分为静态存储和动态存储两大类。动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。由此可知,静态存储变量是一直存在的,而动态存储变量则时而存在、时而消失。这种由于变量存储方式的不同而产生的特性,称为变量的生存期。生存期表示了变量存在的时间。自动变量和寄存器变量属于动态存储方式,外部变量和静态内部变量属于静态存储方式。

C语言程序设计:动态存储和静态存储

在C语言中,每个变量都有两个属性:数据类型和存储类型。存储类型是指变量在内存中存储的方式。各种变量的作用域不同,就其本质来说是因变量的存储类型不同。变量的存储类型分为静态存储和动态存储两大类。

静态存储变量通常是在变量定义时,就分配存储单元并一直保持不释放,直至整个程序运行结束才释放。前面介绍的外部变量即属于此类存储方式。

动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时才予以分配,调用完毕立即释放。如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。

由此可知,静态存储变量是一直存在的,而动态存储变量则时而存在、时而消失。这种由于变量存储方式的不同而产生的特性,称为变量的生存期。生存期表示了变量存在的时间。生存期和作用域分别从时间和空间这两个不同的角度描述了变量的特性。这两者既有联系,又有区别。(www.xing528.com)

一个变量究竟属于哪一种存储方式,并不能仅从其作用域来判断,还应有明确的存储类型定义。因此,变量定义的完整形式应为:

[存储类型] 数据类型 变量名[,变量名2…];

在C语言中,对变量的存储类型定义有以下四种:自动变量(auto)、寄存器变量(register)、外部变量(extern)、静态内部变量(static)。自动变量和寄存器变量属于动态存储方式,外部变量和静态内部变量属于静态存储方式。在介绍了变量的存储类型之后,对一个变量,不仅应定义其数据类型,还应定义其存储类型。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈