常量指针与指针常量的区别

16 篇文章 0 订阅

一、”const int” 与 “int const” 

我们需要明白,const放在数据类型(int)前面和数据类型(int)后面是一样的。所以,

const int *ptr 与 int const *ptr 是等价的


二、简单理解“const int *ptr”, “const int * const ptr”, “int * const ptr”的本质含义 

在英文里面,”*“ 被念做 " pointer to ",朗读的顺序是从右到左。所以,

const int *ptr = ptr pointer to const int指向常量的指针

int const *ptr = ptr pointer to const int(指向常量的指针) 

int * const ptr = const ptr pointer to int(指向整型的指针常量)

const int * const ptr = const ptr pointer to const int(指向常量的指针常量) 

指向常量的指针,是指指针本身并不是常量,而指针所指向的内容是一个常量。因此,指向常量的指针,指针本身可以被修改,但*ptr也就是指针所指向的内容不能被修改。 

指向整型的指针常量,是指指针本身是常量,而指针所指向的内容不是常量。因此,指向整型的指针常量,指针本身不能被修改,而指针所指向的内容可以被修改。 

指向常量的指针常量,按照前面所说,是指指针本身是常量且指针所指向的内容也是常量。因此,指向常量的指针常量,指针本身和指针所指向的内容都不能被修改。 


三、ptr++和*ptr++的合法性 

按照二里面的分析,

const int *ptr 和 int const *ptr,ptr++合法,但 *ptr++ 不合法; 

int * const ptr,ptr++ 不合法,但 *ptr++ 合法; 

const int * const ptr,两者均不合法。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EnjoyCodingAndGame

愿我的知识,成为您的财富!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值