C++中const与指针

指针声明的格式如下:

数据类型 *变量名;

const限定符声明并初始化常量的格式如下:

const 数据类型 变量名 = 常量;

const限定符和指针的组合有如下三种:


指向const对象的指针

const 类型名称 *指针名;

例子:

const int *i;

首先,变量i之前有指针运算符*,表明i是指针;在指针运算符的*的左边是const int,表明指针i指向的是对象是int类型,并且具有const特性,即const对象。也就是说此时的i必须只想具有const特性的int类型。但是,此时i也可以指向非const 的int类型,这是因为无论i只想什么样的int类型,都将指向的对象当成具有const特性。所以,这种情况下是不能通过i这个指针来改变所指向的对象的值。顺便一提,指向const特性的对象的指针必须具有const特性。

const指针

类型名称 *const 指针名 = 指针;

例子:

int a = 1;
int *const i = &a;

指针运算符*的左边是int类型,所以指针i指向的对象的类型是int;左边是限定符const,表明指针i具有const特性,一经赋值,不可更改,但可以通过指针i来改变a的值,因为指针i指向的对象a并不是const对象。也就是说此时的指针是const指针。

指向const对象的const指针

const 类型名称 *const 指针名=指针;

例子:

const int a = 1;
const int *const i = &a;

此时,指针i指向的对象是const对象,同时指针i本身也具有const特性。也就是指针i一经赋值就不可更改,也不可以通过指针i来更改指向对象的值。


总结

指针运算符*将类型名称和指针名分开,指针运算符*左边限定的是指针指向的对象,右边限定的是指。限定符const既可以在类型名称前出现,也可以在指针名之前出现,限定符在谁之前出现就限定的谁,谁具有const特性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值