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

  • 相关阅读:
    JAVA中toString方法
    编辑器未包含main类型解决方法
    Ubuntu中设置环境变量详解
    vim中执行shell命令小结
    vim使用手册
    vim命令总结
    如何修改远程桌面连接3389端口
    Linux磁盘与文件系统管理
    文件与文件系统的压缩与打包命令
    Mininet VM设置笔记
  • 原文地址:https://www.cnblogs.com/tingshuixuan2012/p/2991041.html
Copyright © 2020-2023  润新知