const 修饰 指针有三种形式
1. const int * p;
int x = 32;
const int * p = &x;
2. int * const p
int x = 32;
int * const p = &x;
3. const int * const p;
int x = 32;
const int * const p = &x;
三种形式的区别与意义,一个简单的区分方法,const 修饰最靠近它的东西。
如第一种情况,const在最前面,就修饰的是*p,这时*p是不能够做左值出现的,因为已经限制为常量,但是可以改变p;
第二种情况,const p ,修饰p,这个时候无法改变p,但可以改变*p;
第三种情况,大家都懂得。
理解:
const int * p 限定了指针的值,用于指向常量的指针。一般后面会执行一个常量的地址,虽然没写过C++,不过我觉得这种指针应该用的不多吧,如果这样,直接用这个常量不就行了。
int * const p 限定了指针的指向,指针只能指向这个地址,但可以改变这个地址的值。
就理解到这,如果过客路过,多多指正。