指针与const

在这里,我列举几种情况并加以分析

先说两种比较基本的

1,指向常量的指针

char const *p1=“qwert”;// const char *p1=“qwert”它们等同

p1=“fdff”;//正确,只不过这时p1指向的地址变了而已

p2[2]='r';//错误,修改了常量

2,指针常量

char *const p1=“qwert”;

p1=“fdff”;//错误,p1所指向的位置是不能变的

p2[2]='r';//正确,这种情况它所指向可以改变

3.指向常量的常量指针

const char * const p1=“qwert”;

p1=“fdff”;//错误

p1[2]='r';//错误,这两种情况者都不可以改变

4,补充说明

int  *p1;

const int i=9;

p1=&i;//错误,因为p1不是一个常量,若通过它来改变i的值,则不符合i值为定值的这种情况

若改为,也就是编译器防止它通过*p1

const int *p1;则正确;修改值而报错

如下:

const int i=8;

const int *p1;

p1=&i;//正确

*p1=0//错误







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值