分类: LINUX
2018-03-18 23:39:20
这两种用法的含义是一样的,都表示将a常量化,初始化后该值就不可以被修改。
const int a = 5;
a = 10;//非法,编译出错,向只读变量a赋值。
这两种用法的含义是一样的,表示*p不可以被修改,但是p可以被修改
int a = 4;
int b = 5;
const int *p = &a;
p = p + 5;//合法
*p = &b;非法
表示p是常量,不可以修改,但是*p可以被修改。
int * const p;
p = p + 1;//非法
*p = 8;//合法
表示*p不可以被修改,p也不可以被修改
const int * const p;
p = p + 1;//非法
*p = 8;//非法
如void *memcpy(void *dest, const void *src, size_t n);
表示*src不可以被修改