const在C/C++中已经被我们熟知,最近在C++ Prime 上比较系统的看了下const的用法 在这简略的总结一下下~~~~~
1.const必须要被初始化,因为const对象一旦创建后其值就不能再改变,所以必须初始化。
const int i=42;//正确:编译时初始化
cosnt int k;//错误,K未初始化。
2指针和const
const指针:
指针是对象而引用不是,因此允许把指针本身设定为常量。常量指针必须初始化,而且一旦初始化完成,则它的值(即指针指向的那个地址)就不能再改变,记住是指针所指向的地址不能改变,而不是指针指向的地址里面的内容不能改变。
int errNumb=0;
int *const curErr=&errNumb;//curErr将一直指向errNumb
从右至左阅读,离curErr最近的符号是const,即curErr本身是一个常量对象,再往左边读,对象的类型是int型指针。
3.底层const和顶层const
顶层const:指针本身是个常量
底层const:指针所指的对象是一个常量。
顶层const可以表示任意的对象是常量,指针类型既可以是顶层const又可以是底层const。