关于C++中的const关键字

const与基本数据类型

int x = 3;

此时,我们定义了一个变量x,变量的地址为&x,变量值为3,变量值的大小可以被修改。

const int x = 3;

此时,我们定义的x变成了常量,常量地址依然是&x,常量的值依然为3,但是此时常量x的值不可以被修改。

const与指针类型

const int *p = NULL;
int const *p = NULL;

以上两种定义方式是等价的。

const int * const p = NULL;
int const * const p = NULL;

以上两种方式也是等价的。

举几个例子简单说明一下:
1.

int x = 3;
const int *p = &x;

此时,如果我们改变p,例如 p = &y,使其存储变量y的地址,是不会报错的,但是,如果我们修改 *p,例如 *p = 5,就会报错,因为const修饰的是 *p。
2.

int x = 3;
int * const p = &x;

此时,const修饰的是p,也就是说,此时p中存储内容,也就是变量x的地址,不可以被修改,也就是说,若想 p = &y 使p中存储变量y的地址,将会报错。
3.

const int x = 3;
const int * const p = &x;

此时,执行 p = &y 和 *p = 5 都会报错。

const与引用

int x = 3;
const int &y = x;

此时,我们定义了一个变量x,并且给x定义了一个别名y,那么,此时x的值是可以被修改的,但是,y的值不可以被修改,执行 y = 30 会报错,因为y被const修饰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值