啃书系列持续更新ing,关注博主一起xiao习鸭~
系列文章:
啃书《C++ Primer Plus》之 C++ 函数指针
啃书《C++ Primer Plus》之 C++ 名称空间1
啃书《C++ Primer Plus》之 C++ 名称空间2
啃书《C++ Primer Plus》之 C++ 引用
啃书《C++ Primer Plus》之 const修饰符修饰 类对象 指针 变量 函数 引用
啃书《C++ Primer Plus》之 枚举 内容大全
某位大牛说过,C/C++语言的核心问题,是内存管理和指针。这一节我们来梳理一下书中内存模型一章的部分内容:有关存储持续性、作用域、连接性的问题。
书中对于本章内容的排布,放在了名称空间之前,笔者在刚学习内存空间时是不甚理解的。后来,在对本节内容梳理时,才渐渐明白了其中的用意。
笔者有着这样的理解:
对于变量名称的以及其占用内存的管理,始终工程开发中绕不开的问题。本节梳理的内容就是在名称空间机制出现之前的管理方式。之所以他们是重要的,是因为这些名称空间的使用并没有颠覆这套规则,而是在其上添砖加瓦 (java?什么java?哪里有java?) 。因此这套规则仍旧是基本法,并且仍在大量使用。因此,梳理本节课的内容是有必要的。
另外,本文的内容主要对变量上述性质进行讨论,至于书中提到的函数即语言连续性的问题,本文不做讨论。
下面思维导图:
图中关系乱吗?不要紧,等下文梳理完内容,相信你可以理清楚其中关系的!
存储与访问
存储持续性
首先我们来说存储的持续性。什么是存储的持续性?说白了,就是一个变量的数据在内存中持续的时间,也就是一个变量什么时候会占用一块内存而什么时候又会被释放。
在C++11中有四种不同的存储持续性:
- 自动存储持续性
- 静态存储持续性
- 线程存储持续性
- 动态存储持续性
对于线程存储持续性