const 修饰变量

特点

1、const修饰的变量,一经初始化便不可在程序其它地方进行更改;例如

1
const int buf = 512;

2、const变量可用于任何不改变不改变变量值的操作,如复制等;
3、禁止对const变量进行赋值

共享 const 变量

多文件中同名的const变量间被视为在各个文件中独立定义的变量,若要在多个文件中共享同一个const变量的话,需要在其余文件中声明该变量,且在原定义和各声明前面都加上extern关键字

引用和 const

严格意义上并没有const引用这一说法,因为引用并非一个对象(Object),且引用本身在初始化后就不能改变。所谓引用指向const对象或非const对象,只是影响我们能够对其进行的操作(不能通过引用对const对象进行赋值),而并不是改变引用的指向

指针和 const

指针可以拥有两种const修饰

  • Top-level const
  • Low-level const

Top-level const

Top-level const表明该指针对象本身为const对象,它的值一经初始化变不可被改变(指针对象存放的地址),Top-level const能修饰所有对象类型;

Low-level const

Low-level const只代表指针能够指向const对象,同时也能指向非const对象,但是无法通过指针向对象赋值,上述的引用只有这种const用法