All about "const" in C++

来源:互联网 发布:mac磁盘工具在哪里 编辑:程序博客网 时间:2024/06/10 06:40

All about "const" in C++


说明一下, 这又是个要不停更新的贴... 会不断把自己在C或者C++中遇到关于const的问题记录下来.


const关键字提供了给一个变量当做常量处理的策略, 这种策略个人感觉和linux的文件操作权限wrx很类似.

默认没有const关键字的即为wr(即可写也可读)

但是添加const关键字之后, 一般常规的初始化之后是不能修改变量的值的,即只写一次, 不可改写,之后仅可读.


但是之前很有意思, 抱歉, 真的不记得具体是@Fantasy还是@凯旋冲锋 提出了一个问题, 

那个问题的解答我总结在下面这个link里面.

http://blog.csdn.net/cinmyheart/article/details/39808683


1. 定义const对象

const int buffersize = 512;

这样定义个变量, 它仍然是一个左值, 但是它不可以修改. 任何尝试修改都会导致编译错误(除了强制类型转换的那个奇技淫巧~).


因为常量在定义之后就不能被修改, 所以定义时必须初始化.


2. const 对象默认为文件局部变量.

在全局作用域里定义非const变量时, 它在整个程序中都可以访问.

与其他变量不同, 除非特别说明, 在全局作用域声明的const 变量是定义该对象的文件的局部变量. 此变量只存在于那个文件中, 本能被其他文件访问


非const变量默认为extern. 要使const变量能够在其他文件中访问,必须显示的指定它为 extern.


const 引用是指向const 对象的引用.


未完待续~









0 0