[C++]const的指针使用
1.指向const常量的指针
如下代码编译不通过,因为minWage是const,而非const指针指向minWage之后可以随意更改其值,const也就无效了,所以编译器约定不允许这样使用。
const double minWage = 9.60; double *ptr = &minWage;
正确的写法是这样:pc被定义成一个指向const常量的指针。
const double minWage = 9.60; const double *pc = &minWage;
*pc = 3.14159; // 错误
但是:pc指针是变量,不是const的,所以可以指向其他变量。
double dval = 3.14; pc = &dval;
2.const常量指针
int errNumb = 0; int *const curErr = &errNumb;
该指针可以指向常量,也可以指向变量,该指针不能被重新赋值,但如果其指向的是变量、可以修改指针指向的变量的值。
*curErr = 0; // ok: 重置指针所指的对象
3.指向常量的常量指针
const double pi = 3.14159; const double *const pi_ptr = π
该指针不能指向其他变量,也不能修改指针指向的常量的值。