1.const指针
样式:
1 int errNumb = 0; 2 int *const curErr = &errNumb; // curErr is a constant pointer
解释:
根据、《Think C++》”中介绍的读法(参考“http://zhidao.baidu.com/question/85791037.html?oldq=1&from=evaluateFrom”),上述指针可以解释为:curErr是一个const指针,它指向的是int型变量
重点:
首先:“与其他 const 量一样,const 指针的值不能修改,这就意味着不能使 curErr 指向其他对象。”
其次:“与任何 const 量一样,const 指针也必须在定义时初始化。”
易混淆点:
“指针本身是 const 的事实并没有说明是否能使用该指针修改它所指向对象的值。指针所指对象的值能否修改完全取决于该对象的类型。例如,curErr 指向一个普通的非常量 int 型对象 errNumb, 则可使用 curErr 修改该对象的值:”
代码示例:
1 if (*curErr) { 2 errorHandler(); 3 *curErr = 0; // ok: reset value of the object to which curErr is bound 4 }
2013-04-20
2.对于const问题,“http://blog.csdn.net/zhoukangli/article/details/8035456”这篇博客写的不错,特别是其中有一句“本质:const在谁后面谁就不可修改,const在最前面则将其后移一位即可,二者等效”是关键,在目前知道的const的使用中,没发现与这句话有冲突的案例。