C++中内存模型的几种存储说明符(auto , register, static ,extern,mutable)
关键字提供的存储说明符有auto , register, static ,extern,mutable,C-V限定符有const和volatile.
1.auto用在将变量声明为自动变量,就是留出一段内存,成为堆栈,以管理变量的增减,这个过程是自动完成的.
2.register关键字用来声明局部变量.寄存器变量是存储持续性为自动的,能提供对变量的快速访问,但是分配空间与回收都取决与CPU.如果该变量被频繁使用,就请声明为register变量.
3.static 静态变量.未被初始化的静态变量一般都被设置成0,只能用常量表达式来初始化静态变量.可以使用const常量和enum常量以及sizeof操作符,static变量将被分一块独立的内存空间.
4.extern 重新定义以前定义过的外部变量,该变量将自动隐藏定义过的外部变量.
5.const 表明程序对他进行初始化以后,便不能再被修改了.
6.volatile .即使程序代码没有对内存但愿进行修改,其值也可能发生变化.
7.mutable 即使结构或者类变量为const.其某个成员也可以被修改,
转载请注明出处,有技术问题,欢迎互相交流,或者留言.