fjfjfjfjfjfj

[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 = π

该指针不能指向其他变量,也不能修改指针指向的常量的值。

posted on 2013-03-19 14:43  撬棍  阅读(180)  评论(0编辑  收藏  举报

导航