C/C++const用法

常量

const int MAX = 128;

指针

const int * p 或 int const * p

写法:const 在*前
做用:指针不能修改所指向的内容,可是能够改变指向指针

int a = 0;
int b = 0;
const int * i = &a;
int const * j = &b; // 不要这样写,虽然能运算
*i = 1; // 错误
*j = 1; // 错误
i = &b; // 正确
j = &a; // 正确

int * const p

写法:const 在*后
做用:指针能够修改所指向的内容,可是不能改变指向code

int a = 0;
int b = 0;
int * const i = &a;
*i = 1; // 正确
i = &b; // 错误

const int * const p 或 int const * const p

写法:前,后,各加一个const
做用:指针不能修改指向的内容,也不能改变指向引用

int a = 0;
int b = 0;
const int * const p = &a;
*p = 1;
p = &b;

引用

int & r

能够改变值,也能够改变指向
有的地方说,引用是不能改变指向的,但个人电脑能够...缘由不详...co

int a = 0;
int b = 0;
int & r = a;
r = 1; // 正确
r = b; // 正确

const int & r 或 int const & r

写法:const 在&前
做用:引用不能修改值,也不能改变引用错误

int a = 0;
int b = 0;
const int & i = a; 
int const & j = b; // 不要这样写,虽然能运行
i = 1; // 错误
j = 1; // 错误
i = b; // 错误
j = a; // 错误

int & const r

错误,错误,错误,这种写法不存在const