指向常量的指针--来自《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的指针,以确保传递给函数的实际对象在函数中不应为形参而被修改。
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的指针,以确保传递给函数的实际对象在函数中不应为形参而被修改。
相关文章推荐
- 试验指向常量二维字符串的常量指针
- 深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)
- C++中对常量指针和 指向常量的指针等组合声明的理解
- 常量指针与指向常量的指针
- 常指针(指向常量的指针),指针常量,指向常量的常指针
- const用法之修饰指向常量的指针
- 修改常量指针所指向变量的方法
- 读《C++ Primer 第四版》再温C++ —— Chapter 4数组和指针
- const常量、指向常量的指针和常量指针(转)
- const int *p和int * const p的区别(常量指针与指向常量的指针) .
- const int *p和int * const p的区别(常量指针与指向常量的指针)
- 指向常量的指针和常量指针
- const常量、指向常量的指针和常量指针
- 关于常量指针和指针常量------参考书籍《C++ Primer 第五版》
- 指针为何不能修改其指向的常量字符串
- 常量指针与指向常量的指针
- 指针数组、数组指针、常指针、指向常量的指针、指针函数、函数指针等概念的区分
- 常量指针 与 指向常量的指针
- C++必知必会之(7)常量指针与指向常量的指针
- 指向常量的指针用法和注意事项