int *const p=&a;
这是const指针,这种指针必须在定义时就给出它所指向的地址,否则会error:uninitialized const 'p'.const指针的指针本身是const类型,所以不能修改它所指向的地址,但可以修改它所指向的值。
const int *p;
这是指向const对象的指针,可以修改指向的地址,但不能通过这种指针来修改它所指向的值,即使它所指向的值不是const类型的。
const int *const p=&a;
这是指向const类型的const指针,没错,我们既不能修改它所指的地址,也不能修改它所指的值。