您的位置:首页 > 编程语言 > C语言/C++

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

2010-12-28 16:02 197 查看
指向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的指针,以确保传递给函数的实际对象在函数中不应为形参而被修改。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: