2-4 const彻底理解 c++ primer 精读
2023-02-23 22:59 作者:namexiaolu | 我要投稿

int a1 = 123;
int a2 = 456;
//普通指针
int* p1 = &a1;
// 指针常量(p2的指针不可以指向别的,但是能改变他指向的东西的值)
// 思考方法:从右向左(从等号开始),
// 等号左边是p2,也就是一个指针变量,
// p2左边是const,证明p2这个指针不能变,也就是指向不能变
// 再接着往左看,就是一个普通的int *,就证明他是个int类型指针。
int* const p2 = &a1;
p2 = &a2; //错
*p2 = 789; //对
// 常量指针
// 思考方法:从右向左(从等号开始),
// 等号左边是p22,也就是一个指针变量,
// p22左边是*,就是个普通的指针变量,可以指向别处
// 再接着往左看,是一个const,这时候不知道他修饰的是谁,
// 接着往左看,是一个int,证明const修饰的int,就是修饰的变量。就是指针指向的值不能变。
int const* p22 = &a1;
p22 = &a2;//对
*p22 = 789;//错
const int* p3 = &a1;
p3 = &a2;//对
*p3 = 7889;//错
const int* const p4 = &a1;
p4 = &a2;//错
*p4 = 890;//错
const int const* p5 = &a1;
p5 = &a2;//对
*p5 = 8990;//错
