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 = π
该指针不能指向其他变量,也不能修改指针指向的常量的值。
原文链接: https://www.cnblogs.com/fjfjfjfjfjfj/archive/2013/03/19/2969174.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/81200
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!