导言:const在C++代码中占有很重要的地位,它可以让程序员告诉用户及编译器什么变量是不用改变的,以及用const代替#define的定义,避免有时因预编译器出现忽略#define定义而带来的错误…
常量指针:
当const出现在*号的左边,称为常量指针;例:
int a = 10;
int b = 10;
//const修饰的是指针,指针指向可以改,指针指向的值不可以更改
const int * p1 = &a;
p1 = &b; //正确
//*p1 = 100; 报错
**特点:**不能对常量指针指向的对象的内容进行修改,可以修改常量指针的指向。
指针常量:
当const出现在*号的右边,称为指针常量;例:
//const修饰的是常量,指针指向不可以改,指针指向的值可以更改
int * const p2 = &a;
//p2 = &b; //错误
*p2 = 100; //正确
**特点:**不能对指针常量的指向进行修改,可以修改指针常量指向对象的内容。
当*左右两边均有const时:
//const既修饰指针又修饰常量
const int * const p3 = &a;
//p3 = &b; //错误
//*p3 = 100; //错误
**特点:**既不能够修改指向又不能够修改指向所对应的内容。
补充
int * ptr; // 指向int的指针
const int * ptr; // 指向const int的指针,一般叫做常量指针
int * const ptr; // 指向int的指针常量。即指针的值是一个常量。
const int * const ptr; // 指向const int的指针常量
const int * * const ptr; // 指向常量指针的指针常量
最后两个有点绕人@_@…