const位置不同 所对应的指针含义不同
一、常量
const int a = 0;
二、指针
1、指针指向地址中存储的值不能改变
int a = 0;
const int b = 2;
const int *q;
q = &a; //非const赋值给const
*q = 5; //报错,不能对指针指向地址存储的值进行修改
p = &b; //非const指针地址赋值
2、指针指向的地址不能改变,值可改变
int a = 1;
const int b = 0;
int * const p = &a; //报错 不能修改const指针指向的地址
int * p = &b; //报错 导致非const指针修改const的值
*p = 2; //可以修改指针指向的值
3、都不能修改
int a = 0;
const int * const p = &a;
三、函数
const int function(int){}
int function(const int){}
int function(int) const{}
总结
const位于*的左边对应的是p指针指向的空间中的值不能被改变( * p不能变)
const位于*的右边对应的是p指针指向的空间不能变(p不能变)