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.其某个成员也可以被修改,

posted on 2010-10-09 15:18  sunliming  阅读(1417)  评论(0编辑  收藏  举报