首先我们需要一下const关键字的定义,const名叫常量限定符,当const修饰变量时,就是在告诉编译器该变量只可访问不可修改,而编译器对于被const修饰的变量有一个优化,编译器不会专门为其开辟空间,而是将变量名和数值作为一个kv键值对存入到符号表中。
注意:const修饰的变量必须要在定义时初始化
如上,当我们想要通过指针改变a时发现无法改变,这就是因为编译器对其的优化,导致a为存入符号表的一个固定值,而&a和b的地址一样只是编译器想让我们看到的,实际上是取地址时,编译器又开了一块空间存储a的值,并将这个空间地址给b。
通过volatile关键字修饰变量我们可以告诉编译器,该变量无需优化
如上所示
一,const常见用法
1.1 const修饰变量
const int a=10;
int const a=10;
const修饰变量如下