C++有3种管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫做自由存储空间或堆heap)
1. 自动存储
自动变量是一个局部变量,作用域为包含它的代码块。
自动变量通常存储在栈中,执行代码块时,其中的变量依次加入到栈中,离开代码块时,按相反的顺序释放这些变量,这被称为后进先出(LIFO)。
2. 静态存储
静态存储是整个程序执行期间都存在的存储方式。使变量成为静态的方式有两种:一种是在函数外定义;一种是在声明变量时使用关键字static。
3. 动态存储
指由new和delete管理的内存池。该内存池与自动变量和静态变量的内存是分开的。
使用new运算符在自由空间上创建变量时,没有调用delete将会发生内存泄漏。