用法1:const int a或者int const a
这两种用法的含义是一样的,都表示将a常量化,初始化后该值就不可以被修改。
const int a = 5;
a = 10;//非法,编译出错,向只读变量a赋值。
用法2:const int *p或者int const *p
这两种用法的含义是一样的,表示*p不可以被修改,但是p可以被修改
int a = 4;
int b = 5;
const int *p = &a;
p = p + 5;//合法
*p = &b;非法
用法3:int * const p
表示p是常量,不可以修改,但是*p可以被修改。
int * const p;
p = p + 1;//非法
*p = 8;//合法
用法4:const int * const p
表示*p不可以被修改,p也不可以被修改
const int * const p;
p = p + 1;//非法
*p = 8;//非法
用法5:修饰函数参数
如void *memcpy(void *dest, const void *src, size_t n);
表示*src不可以被修改