c++存储#
- 1 自动存储
- 在函数内部定义的变量使用自动存储空间。被称为自动变量。
- 在函数调用时自动产生,在函数结束时消亡。
- 自动变量是一个局部变量,作用域在包含它的代码块。(在一个函数中也可以有代码块)
- 自动变量存储在栈中。在执行代码时,变量将依次加入栈中。在离开代码块时,将按相反的顺序释放这些变量。
- 2 静态存储
- 整个程序执行期间都存在的存储方式。
- 使变量称为静态的方式有两种。
- 1 在函数外面定义
- 2 在声明变量时使用static关键字
- 3 动态存储
- new和delete管理着一个内存池。
- c++中将这个内存池称为自由存储空间或堆。
- 该内存池和自动存储和静态存储是分开的。
- new和delete相互影响导致占用堆空间不一定连续。
- 如果使用new在堆上创建变量后,没有调用delete,即使包含指针内存被释放,该数据内存也依然存在。并且将访问不到该内存区域。这将导致内存泄漏。
- 要避免内存泄漏,最好同时使用new和delete运算符。c++智能指针有助于自动完成这种任务。16章介绍。
posted @
2019-11-29 22:41
yangzixiongh
阅读(
175)
评论()
编辑
收藏
举报