const指针用法
const修饰符修饰变量时,具有只读的特点,不能被修改。
const int PI = 3.1415926 // 初始化常量,并且只能在初始化时赋初值,因为之后将不能修改
int a = 3, b = 9;
const int* p = &a; // 常量指针,指针本身可以改变,但是指针指向的值不可以改变. const在int前,可以理解为const修饰变量,因此指针指向的变量不可修改
p = &b; // 正确,
*p = 10; // 错误,指针指向的值为只读的,不可以修改
int * const p = &a; // 指针常量,指针本身不可以改变,但是指针只指向的值可以改变. const在p前,可以理解为const修饰指针,因此指针本身不可修改
p = &b; // 错误,指针本身是只读的,不可以修改
*p = 10; // 正确
const int * const p = &a; // const既出现在int前,又出现在p前,同时修饰指针和指针指向的变量,因此指针本身和指针指向的变量都不可以修改
p = &b; // 错误
*p = 10; // 错误