什么是const
const
const呢,是c++中的一个关键字,是不可修改的。需要注意的是const必须初始化,必须!
int i= 42; //声明一个变量
int &r1 = i; //引用,也就是换了一个名字
const int &r2 = i; //引用,但是呢,这个r2是不可变的。导致i不能随意修改。
r1 = 0 ; //OK,因为i是变量啊
r2 = 0 ; //NO r2是不可变的
指针
什么是指针呢?简单理解就是地址
int i = 2; // 声明一个变量
int* r2 = &i; // &i是取i的地址,r2也是i的地址,但是* r2是地址指向的内容。
指向const的指针
首先,是一个指针,但是这个指针是指向一个const 类型的指针。
int const *p; // 意思是*p的内容是不可变的,地址随便指(指哪都行)
const 指针
int * const p = 地址 // 内容是什么都好,地址不可变
指针与内容都不可变
顾名思义,就是指针的地址和地址所被保存的内容都是不可变的。
const int * const p = 地址值
int const * const p = 地址值
理解记忆
谁是const的下一位,谁就不可变,就这么豪横。