为什么输出结果会有两个不同的值?...)
1)底层const(位于*左侧)
常量指针,表示指向的对象是个常量,不能修改其内容,只能更改指针指向的地址....(位于*右侧)
指针常量,表示不能更改指针指向的地址,只能修改其内容(定义时必须被初始化)
其实很好理解,比如 int * const p, 修饰 p是个const常量.而 p是指向对象的地址.所以表示指向对象的地址是个常量...//错误,不能更改指针指向的地址
*p=2; //正确,修改a的值等于2
3.4 顶层const变量可以替代mutable变量
1) mutable介绍...,因为编译器不能将该volatile类型的变量优化为一个常量
实例:
volatile int x=1;
const int y=x; //y的值是个volatile型
int