const相关易混淆点备忘录

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的使用中,没发现与这句话有冲突的案例。

原文链接: https://www.cnblogs.com/tingshuixuan2012/archive/2013/03/30/2991041.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/82655

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午8:42
下一篇 2023年2月9日 下午8:42

相关推荐