一、const的定义:const源自于英文单词constant,表示不变,用于修饰变量。
二、const修饰指针变量:
(const修饰普通变量太简单了,不讲)
只要有三种形式:
①int const *p
const int *p
这两种形式等价,都声明了一个可以改变的指针变量(p的值可以改变),其指向的内容是不能改变的int型(*p不能被改变)。
②int *const p
这种形式声明了一个不能被改变的指针变量(p的值不能被改变),其指向的内容是可以改变的(*p可以被改变)。
③int const * const p
p和*p都不能改。
三、const的变量也可以改
const机制是通过编译器检查实现的,当我们对一个普通变量用const修饰时,可以通过指针p引用这个普通变量,
编译器只认这个普通变量名是const的,不能被修改,并没有说a的地址不可以被引用。我们可以通过a的地址间接对它进行修改。
只要能骗过编译器,const修饰的变量也是可以修改的。