动态存储方式
所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。典型的例子是函数的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放。如果一个函数被多次调用,则反复地分配、释放形参变量的存储单元。
静态存储方式
所谓静态存储方式是指在程序编译期间分配固定的存储空间的方式。该存储方式通常是在变量定义时就分定存储单元并一直保持不变,直至整个程序结束。全局变量,静态变量等就属于此类存储方式。
内存中用户存储空间的分配情况(三种):
- 程序区:存放程序语句
- 静态存储区:存放全局变量,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。
- 动态存储区:
函数形式参数,在调用函数时给形参分配存储空间;
自动变量(未加static声明的局部变量);
函数调用时的现场保护和返回地址等。
对以上这些数据,在函数开始调用时分配动态存储空间,函数结束时释放这些空间。