const 与指针简谈
const与指针出现的时候很容易混淆是指针是常量还是其指向的数据是常量,下面用最简单的方法来说明
1>
以‘*’为界,const出现在‘*’左边表示,指向的值不能修改;const出现在‘*’右边表示指针本身不能修改,不能修改表示左值不可能修改。
2>
如果‘*’两边都现出const表示指针指向的值与指针本身都不能修改
3>
const static 表示是常量,不能修改,一般用在类定义中用心解决类中相关常量问题,也可以是enum来实现
<span style="white-space:pre"> </span>int d1 = 100;
int d2;
int const *p1;
const int * p2;
// p1与p2指针是一样的,都是指向常量的指针,指针本身不是常量
int *const p3= &d1;//因为是指针常量,所以必须初始化
const int * const p4 = &d1;//指针与指针指向都的值都是常量不能修改
p1 = &d1;//指针本身可修改
p2 = &d2;
//*p2 = 200;//错误,指针指向常量,其指向的值不可修改
//p3 = &d2;//错误,指针本身是常量,指针不能修改
*p3 = 1000;//指针是常量,但其指向的值可以修改