const是常量修饰符,定义一个不可改变的变量。
1:const int i = 10; --> i的值不可改变,若i = 11;则报错
2:const int *j = (int*)&i; 和 int const *j = (int*)&i; - --> j指向的变量的内容不可变,若 *j = 20; 则报错
3:int * const t = (int*)&i; --> t指向的地址不能改变,若t++; 则报错
const前面是什么,那么那部分就不可修改,
比如int const i = 5; const 前是int, 则表示i的值不能被修改
int const * j; const 前也是int, 则表示i指向的变量的值不能被修改
而int * const j; const 前是int *,表示指针指向的值不能被修改
const全局变量存储在全局存储空间,其值只有可读属性,不能修改;
const局部变量存储在堆栈中,可通过指针修改其值;
const变量在预处理是处理,编译器只对其值读取一次。