1、自动存储
自动变量是一个局部变量,作用域为代码块(函数中可包含代码块),作用周期为其所在函数的执行期间,其所在函数执行结束时即消亡。自动变量存储在栈中,后进先出,所以程序执行时,栈的大小不断变化。
2、静态存储
静态存储时全局变量,作用周期是整个程序执行期间。声明方式,一种是在函数外,一种是只用static关键字。
3、动态存储
new和delete管理一个内存池即自由存储空间或堆,该内存池与自动存储和静态存储空间是分开的。其作用周期由new和delete决定,程序员对内存有更大控制权。确定是容易造成内存泄漏,如果没有delete释放,即使存储指针的内存已被释放,其仍然无法被使用。