C++中const限定符用法

在C++中是可以在指针类型中使用const限定符的,但是限定符的位置不同会导致语义产生很大区别,可以通过以下例子来看出:

const int *p1;
int * const p2;

在这两个语句中,不一样的就是const的位置,会导致什么样的区别呢?


p1指向的值不能改变 等价于 不能通过p1改变i1中存的值,也就是说对p1进行如下操作是错误的

const int *p1 = 10; 
p1 = &a ;
p1 = 20;   //error:不能改变const 指针的值

但是对i1的操作不会产生错误,因为i1是整型变量

i1 = 10;    //success

p2是可以改变,但是p2这个指针不能指向其他变量也就是说对于p2的操作会得到下面的结果:

p2 = &j;    //error:不能改变const指针的指向
p2 = 10;    //success.

 

总结的来说:

const int *p1 = ;  这是一个整形常量指针,必须在声明的时候赋值,不能通过p1指针改变,但是可以通过i1改变

int * const p2 = i2; 它指向的整数是可以改变的,但是p2这个指针只能指向i2,不能指向其他变量。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值