1、修饰局部变量:int const a = 10; const int b = 100;这两种写法是一样的,表示a和b都是常量,不可改变。
注意:变量本身是可以改变的,但用const修饰变量后,变量就不可改变了,所以一定要给变量初始化,否则之后就不能再进行赋值了。
2、const修饰指针
2.1、常量指针:指针的指向可以修改,但指针指向的值不能修改。
例:int a = 10;
int b = 100;
const int* p = &a;
*p = 20;//错误
p = &b;//正确
2.2、指针常量:指针的指向不可以修改,但指针指向的值可以修改
例:int a = 10;
int b = 100;
int* const p = &a;
*p = 20;//正确
p = &b;//错误
3、const 修饰函数形参,以防止一些非预期的参数修改。
个人记忆法:
1、常量指针与指针常量的命名记忆:const 在*前叫常量指针;*在const前叫指着常量。
2、const 在*前,即常量指针,const 修饰了*p,则*p不能被修改,即指针指向的值不能修改(注:这里说的是不能通过该指针改变变量的值,但是可以通过其它引用来改变变量的值)。const在*后,const没有修饰整个*p,则*p可修改,而指针本事不能再指向其它地址。
3、将const理解成“只读”。
注:以上纯属个人积累,仅供交流。