c++ 之const和指针的混合逻辑理解

157 阅读1分钟

1.常量指针:指针本身是常量,它本身的数据不可变化。也就是它指向的变量的地址不可变化,是个确定的地址。

表示方式有:

int a = 10; int *const p = &a;

int b = 20; constexpr int *p = &b;

还有使用 同义词的表示方法里的情况:



2.指向常量的指针:顾名思义,就是它的数据对应的变量的数据是个常量。

方式:

int a = 10; const int *p = &a;

int b = 20; int const *p = &b;等方式。

尤其是第二种,更容易让人误解,理解成是对指针的修饰。



p0 没有报错,p1报错了。这说明p0的const修饰的是p0指向的对象,而不是指针p0。