变量的存储类别

本文介绍了计算机程序中变量的两种存储方式:静态存储和动态存储。静态存储为变量分配固定存储空间,适用于全局变量;动态存储根据需要为变量分配空间,常用于局部变量和函数调用过程中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 动态存储方式与静态存储方式

    从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量。可以从另一个角度,从变量值存在的时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式。

    所谓静态存储方式是指在程序运行期间由系统分配固定的存储空间的方式。而动态存储方式则是在程序运行期间根据需要进行动态的分配存储空间的方式。

    先看一下内存中的供用户使用的存储空间的情况。这个存储空间可以分为三部分:

    • 程序区
    • 静态存储区
    • 动态存储区

    数据分别存放在静态存储区和动态存储区中。全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储区,程序执行完毕后就释放。在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。

    在动态存储区中存放以下数据:

    • 函数形式参数。在调用函数时给形参分配存储空间。
    • 自动变量(未加static声明的局部变量)
    • 函数调用时的现场保护和返回地址等。

    对以上这些数据,在函数调用开始时分配动态存储空间,函数结束时释放这些空间,在程序执行过程中,这种分配和释放时动态的,如果在一个程序中两次调用同一个函数,分配此函数中局部变量的存储空间地址可能是不相同的。如果一个程序包含若干个函数,每个函数中的局部变量的生存期并不等于整个程序的执行周期,它只是程序执行周期的一部分。根据函数调用的需要,动态地分配和释放存储空间。

    在C语言中,每一个变量和函数有两个属性:数据类型和数据的存储类别。对数据类型(如整型、字符型等)。存储类别指的是数据在内存中存储的方式。存储方式分为两大类:静态存储类和动态存储类。具体包含4种:自动的(auto)、静态的(static)、寄存器(register)、外部的(extern)。根据变量的存储类别,可以知道变量的作用域和生存期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值