总的来说,const 的作用就是数据保护,防止数据无意间被修改。
用法一:利用const 声明,让指针指向一个常量对象(常量对象的说法并不准确,但是很多教材都这么讲的,就先暂时这么用吧)
int age = 20; const int * pt = &age; //将pt声明为指向const int的指针,这意味着通过pt只有读取age的权限,不能通过pt去修改age的值 *pt += 1; //Invalid, because pt points a const int
用法二:将指针本身声明为常量,这样可以防止改变指针指向的位置。
int age = 20; int weight = 70; int * const pt = &age; // 将pt本身声明为一个常量指针,指向age,以后就一直指向age,不能对pt赋值指向别的对象。 pt = &weight; //Invalid, because pt is a const pointer
当 pt 本身是一个常量指针的时候,虽然指针的值不能改变,但是可以通过 pt 去修改它所指向对象的值。比如说:假设上述 int 对象的地址为 1000,则 pt 被初始化为1000,并且 pt 的值一直为1000,不能被修改。但是可以通过 pt 修改 age 的值。
用法三:将前两种用法综合起来使用,声明一个指向常量对象的常量指针
const int age = 20; const int * cosnt pt = &age;此时,age是const对象,age的值永远是20不能改变,而 pt 是一个 const 指针,只能永远指向 age ,不能指向其他对象。
原文:http://blog.csdn.net/xinshen1860/article/details/20528657