常量指针-指针常量const
区分常量指针和指针常量的关键就在于星号的位置,我们以星号为分界线,如果const在星号的左边,则为常量指针,如果const在星号的右边则为指针常量。如果我们将星号读作‘指针',将const读作‘常量'的话,内容正好符合。int const * n;是常量指针,int *const n;是指针常量。
//常量指针,const修饰int,表示这个整形值不能通过*p修改,但是可以通过修改指针地址修改这个值
int iTestA = 5;
int iTestB = 6;
const int* a = &iTestA; //can not *a = 8;
a = &iTestB;
//指针常量,const修饰指针,表示指针地址不能通过p修改,但是可以通过*p修改这个值
int iTestC = 7;
int* const b = &iTestC; //can not b = &iTestD;
*b = 9;
//指向常量的常指针
是以上两种的结合,指针指向的位置不能改变并且也不能通过这个指针改变变量的值