常量指针:指针指向的内容是常量。有两种定义方式:
const int *n; int const *n;
常量指针是说不能通过这个指针改变变量的值,但是还是可以通过其他的引用来改变变量的值。
int a=5; const int* n=&a; a=6;
常量指针指向的值不能改变,但是这并不意味着指针本身不能改变,常量指针可以指向其他的地址。
int a=5; int b=6; const int * n=&a; n=&b;
指针常量:这个指针本身是一个常量,不能指向其他的地址。
int * const n=address;
指针常量指向的地址不能改变,但是你可以通过指针常量来改变指针指向的变量的值:
int a=5; int * const n=address; *n=8;
区分常量指针和指针常量的关键在于星号的位置,如果const 在星号的左边,为常量指针。
如果const 在星号的右边则为指针常量。
将*读作指针,将const读作常量。则:
int const *n; //常量指针 int *const n;//指针常量