指针常量和常量指针的区别:
方向和值
指针常量 [char * const p]
- const修饰的是[p],[p]为地址,存放的地址[p]变成常量不可改。但是存放的值[*p]存放的值可以变。
- (方向不能变,值可以变。限制p,限制方向)
常量指针 [char const *p]
- const修饰的是[*p],[*p]为值,存放的值[*p]为常量不可改。但是指针变量[p]存放的地址可以改。
- (方向可以变,值不可以改。限制*p,限制值)
/指针常量的例子,就是指针本身是常量/
int a,b;
int * const p;
p = &a;//错误
p = &b;//错误
*p = 20;//正确
/常量指针的例子,就是指向常量的指针/
int a,b;
int const *p;
p = &a;//正确
p = &b;//正确 *
*p = 20;//错误