首先把握一个原则, const修饰谁, 谁不变spa
int age = 10; 指针
int money = 200;orm
// 这里const 修饰的是 *p1, *p1是不变的, 可是p1是可变的变量
int const * p1 = &age;margin
// 这里const 修饰的是 p2, p2是不变的, 可是*p2 是可变的top
int * const p2 = &age; co
*p1 = 999; // 错误 *p1 是不能修改的错误
p1 = &money; // 正确const
*p2 = 999; // 正确
p2 = &money; // 错误 p2是不能修改的
小结: 这里*p1能够理解为 不能修改age的值(p1指向的变量地址的值), 可是能够修改p1指针的指向, 让其指向&money(money的地址), *p2 能够理解为 能够修改p2指向变量的地址的值, 可是不能修改p2的指向, 对应着比较好理解