从C到C++:const关键字和常量
定义常量
通常用# define
或const
关键字定义常量,与define相比,const有数据类型,在一定程度上可以防止出错。
const int MAX_VAL = 23;
const double Pi = 3.14;
const char* SCHOOL_NAME = "UCAS";
定义常量指针
- 注意1:不可通过常量指针修改其指向的内容。
int m, n;
const int* p = & n;
* p = 5; //编译出错!
n = 4; // ok
p = &m; // ok,常量指针的指向可以修改
- 注意2:不能把常量指针值赋给非常量指针,反过来可以
const int * p1;
int * p2;
p1 = p2; //ok
p2 = p1; //error
p2 = (int*)p1; //ok,强制类型转化
- 注意3:函数参数为常量指针时,可避免函数内部不小心改变参数指针所指地方的内容
定义常引用
- 注意:不能通过修改常引用修改其引用的变量
int n;
const int & r = n;
r = 5;//error
n = 4;//ok