常量

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 在*后
作用:指针可以修改所指向的内容,但是不能改变指向

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

可以改变值,也可以改变指向
有的地方说,引用是不能改变指向的,但我的电脑可以...原因不详...

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

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


熊一帆
96 声望14 粉丝