const int *p和int *const p的区别

const int *p;
这里的 p 是一个指向 int 类型 const 对象的指针,const 限定了p指针所指向的对象类型,而并非 p 本身。也就是说,p 本身并不是
const。在定义时不需要对它进行初始化,如果需要的话,允许给 p重新赋值,使其指向另一个 const 对象。但不能通过p 修改其所指对象的值.

int *const p

从右向左把上述定义语句读作“p是指向 int 型对象的const 指针”。与其他 const 量一样,const 指针的值不能修改,这就意味着

不能使p 指向其他对象。任何企图给 const 指针赋值的行为(即使给p 赋回同样的值)都会导致编译时的错误.