const的用法

const修饰的是紧跟其后的内容,例如:

int const *p; const int *p; const修饰的是*p,即p所指向的内容是常量。因此,p指向的地址可以改变,但p指向的地址里的值不能通过指针p改变(但可由其他方式改变);

int * const p; const 修饰的是p,即p所指向的地址是常量。因此,p所指向的地址不能改变,但p所指地址里的值可通过指针p改变;

int const * const p; 第一个const修饰的是*p,即p所指地址的内容不能通过指针p改变,第2个const修饰的内容是p,即p所指向的地址不变。

因此,int const *p 和const int *p是相同的,都是指不能通过*p是常量,但在2中用法中,推荐使用int const *p,这样含义明确,const修饰的即是*p,在复杂的声明中,明确的含义有助于读懂程序,比如:char const *(*aaa)[10]很容易让人明白const修饰的是*(*aaa)[i],而const   char   *(*aaa)[10]则要隐晦一些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值