1. 介绍 const 的用法,const 需要从后向前看,修饰的是 const 左边的数据类型。注意,* 可以看做是指针数据类型,就如同 int 是整数数据类型一样
int b = 0;
int *const p = &a; // 此时 const 修饰的是指针,所以指针变量不可更改,但指针指向的变量值可以修改
// *p = 3; OK
// p = &b; ERROR
int const *p = &a; // 此时 const 修饰的是指针变量指向的值,所以指针变量可以更改,但指针指向的变量值不可以修改
// *p = 3; ERROR
// p = &b; OK
int const *const pp = &p; // 这里第一个 const 修饰的是指针,所以指针变量的值不可改变;第二个 const 修饰的是指针变量指向的值,也不可改变
// *pp = 3; ERROR
// pp = &b; ERROR