
这是面试高频考点核心记忆口诀const在*左边管“指向的内容”在*右边管“指针本身”以下面代码举个例子#include iostream int main() { int a 10, b 20; // 1. 指向常量的指针底层 const const int* p1 a; // *p1 100; // 错误不能通过 p1 修改 a 的值 p1 b; // 正确p1 可以改指其他地址 // 2. 常量指针顶层 const int* const p2 a; *p2 100; // 正确可以通过 p2 修改 a 的值 // p2 b; // 错误p2 的指向不能改变 // 3. 双重 const const int* const p3 a; // *p3 100; // 错误 // p3 b; // 错误 std::cout p1: *p1 std::endl;//p1 指向b的地址此时输出为20 std::cout p2: *p2 std::endl;//p2 指向a的地址通过赋值语句把a对应的内存改成100所以此时输出是100 std::cout p3: *p3 std::endl;//p3 指向a的地址由于通过p2把a对应的内存改成100所以此时输出还是100 }