const关键字主要有三种用途:
1.定义常量
例如:
const int Max_value = 25;
2.定义常量指针
需要注意的是不可通过常量指针修改其指向的内容,同时也不能把常量指针赋值给非常量指针,但反之可以。
例如:
int x, y;
const int* p = &x;
*p = 6; //编译出错
x = 5; //编译通过
p = &y; //常量指针的指向可以变化(注意和引用的区别,引用是从一而终的,但指针不是)
如果某一函数的参数为常量指针时,可避免函数内部不小心改变参数指针所指地方的内容(一旦改变,编译会报错)。
const int* p1;
int* p2;
p1 = p2; //ok
p2 = p1; //编译出错
p2 = (int*) p1; //但可以通过强制类型转换将常指针赋给非常指针
3.定义常引用
同样需要注意的是不能通过常引用修改其引用的变量。
例如:
void copy(const int* a, int& b)
{
b = *a; //OK
*a = 6; //出错
}