指向常量的指针--来自《C++ primer》 第四版

来源:互联网 发布:mysql免安装版配置教程 编辑:程序博客网 时间:2024/06/06 01:32

 

 

指向const对象的指针 

 

    const double *cptr//cptr may point to a double that is const

    这里的cptr是一个指向double类型const对象的指针,const限定了cptr指针所指向的对象类型。而非cptr本身。如果需要对cptr重新赋值的话,使其指向另一个const对象。但不能通过才cptr修改其指针所指对象的值

    *cptr=43;//error:*cptr might be const

    把一个const对象的地址赋给一个普通的,非const对象的指针也会导致编译时的错误:

    const double pi=3.14;//error

    const double *cptr=π//ok

    允许吧非const 对象的地址赋给指向const对象的指针

    double dval=3.14; //dval is double;its value can be changed

    cptr =&dval;

    如果指向const的指针所指的对象并非const,则可直接给该对象赋值或间接地使用普通的非const指针修改其值:毕竟这个值是非const。重要的是:不能保证指向const的指针所指的对象的值一定不可修改。

    指向const的指针常用作函数的形参。将形参定于为指向const的指针,以确保传递给函数的实际对象在函数中不应为形参而被修改。




 

 

 

 

 

 

原创粉丝点击