const int a;与const int*pi,int *const pi;是不是不一样啊,前面的那个a的值不能通过a=8;和pi=&a的形式来修改吧,
但是后面的那2个可以通过这两种中的一种修改的把,比如const int*pi中,不能对*pi进行修改,但是可以对pi进行重新赋值啊,这样不就间接改了*pi了吗,是这样的吗
const int * pi 和const char * p是一样的,都是说明不能直接对指针指向的地址赋值,而可以修改指针本身。像你说的对pi重新赋值后,确实是间接的修改了 * pi的值,但是在内存中原来的地址指向的内容还是没有发生变化的。