1.const修饰指针类型(指向常量的指针)
修饰*,可以修改指针变量的值,不可以修改指针指向内存空间的值。
const int* p = &a; 等价于 int const *p = &a;
例如:
int a = 10;
int b = 20;
const int* p = &a;
*p = 123; //error 值不可以修改
p = &b; //ok 指针可以修改
2.const修饰指针变量(指针常量)
修饰p,可以修改指针指向内存空间的值,不可以修改指针变量的值
int* const p = &a;
例如:
int* const p = &a
*p = 123; //ok 值可以修改
p = &b; //error 指针不可以修改
3.const修饰指针类型,修饰指针变量(只读指针)
不可以修改指针变量的值,也不可以修改指向内存空间的值
const int* const p = &a;
例如:
const int* const p = &a;
p = &b;//error 指针不能修改
*p = 123;//error 值也不能修改