指针常量和常量指针,以及constexpr
常量指针和指针常量很容易被混淆,其实可以使用一个简单的记忆方式。
c++中我们一般从右往左进行解析,比如一个简单的赋值操作。a=b=c;他的含义就是b=c的值,然后将b的值赋给a。
指针常量的写法有:
int* const p;
常量指针:
const int* p;
int const *p;
几点说明:
1.int可以不用管
2.在读的时候可以简单把*读作指针,const读作常量
3.从右往左解析,对于指针常量,int* const p;p是一个指针,const修饰。那么表示指针的指向是不可以改变的
对于常量指针,无论是const int* p还是int const* p。从右往左都是*p,*p代表一个值或者说一个对象。然后const修饰,说明是指针 指向的值是一个常量,我们不可以用这个指针来修改该变量或者说对象。但是可以使用其他指向他的指针或者是引用来修改。