自动存储
- 在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable),这意味着他们在所属的函数被调用时自动产生,在该函数结束时消亡。
- 自动变量是一个局部变量,其作用域为包含它的代码块,即该变量仅在程序执行该代码块中的代码时存在。
- 自动变量通常存储在栈中。
- 占用的内存总是连续的。
静态存储
- 静态存储是整个程序执行期间都存在的存储方式。
- 使变量称为静态的方式有两种:1. 在函数外定义它;2. 声明变量时用关键字 static。
动态存储
- new 和 delete 共同管理了一个内存池,在C++中被称为自由存储空间(free store)或堆(heap)。
- 数据的生命周期不完全受程序或函数的生存时间控制。
- 占用的自由存储区可能是不连续的