const与指针

#1 指针指向一个const常量
指的是指向的这个常量可以通过指针引用,但是不能通过指针修改,比如传一个数组到函数中,但是又不想被意外地修改其中的数据,那么可以用一个指向这个数组的常量指针来实现。
实例:int a=20; const int p=a; 这里说明不能使用p来修改a里面的值,但是可以直接改变a的值
注意
int a=20; int *p=a;const int *p1=p; 这段代码是被允许的,可以将非const指针赋值给const指针,*p仍然可以修改a的值,但是p1只能引用而不能修改a的值。另外,反过来,将const指针赋值给非const指针是不被允许的,因为这样a的值就变成了既可以修改又不可以修改。
这里const表达的指针p是一种不可以改变内容的引用方式,但是可以修改p的地址,新的地址上的内容也是不可以修改的。

#2 指针指向一个固定的地址
这里指的是指针的内容不可修改,但是指针指向的内容是可以修改的。
实例:int a=20; int * const p=&a; 这种情况下p是可以改变a的值的,比如p=30;但是p中存放的地址是不可以改的,比如有int b=30; p=&b是不被允许的。

#总结:const 后面修饰的是不可以改的,const int p 说明p不可以改变int的内容,int * const p 说明p中的内容是不可以修改的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值