易混淆的const -- 《C++ Primer》读书笔记

来源:互联网 发布:北京java讲师招聘 编辑:程序博客网 时间:2024/05/16 17:23
    试图将一个非const对象的指针指向一个常量对象的动作,将引起编译错误。

    const double *cptr
    cptr是一个指向double类型的const对象的指针。(我们可以从右往左把这个定义读为"cptr是一个指向double类型的、被定义成const的对象的指针"。)此中微妙在于cptr本身不是常量,我们可以重新赋值cptr,使其指向不同的对象,但不能修改cptr指向的对象。

    在实际的程序中,指向const的指针常被用作函数的形式参数。它作为一个约定来保证:被传递给函数的实际对象在函数中不会被修改。例如:
    int strcmp(const char *str1, const char *str2);

    int *const curErr=&errNumb
    curErr是指向一个非const对象的const指针。(我们可以从右往左把定义读作"curErr是一个指向int类型对象的const指针"。)这意味着不能赋给curErr其他的地制值,但可以修改curErr指向的值。
原创粉丝点击