指针常量和常量指针的区别

(1)指针常量:顾名思义它就是一个常量,但是是指针修饰的。
格式:

int * const p     //指针常量

例:

int a,b;
int * const p=&a //指针常量

//那么分为一下两种操作
*p= 9; //操作成功
p=&b;   //操作错误,指针p将一直指向a,不能再指向b

因为声明了指针常量,p代表一个指针地址,因此指针变量不允许修改,但是指针所指的值即*p是可以修改的。如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改”。

(2)常量指针

常量指针:如果在定义指针变量的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量称为常量指针。

格式:

const int *p = &a; //常量指针

例:

int a,b;
const int *p=&a //常量指针

//那么分为一下两种操作
*p=9;    //操作错误,指针所指的值不能改变
p=&b;    //操作成功

因为常量指针本质是指针,指针所指的对象的值,即*P不能修改,但是指针,即p是可以修改的。

小结:

A、关键要看const修饰的是谁

int const   和  const int的写法是一样的

B、指针的话看const离谁( 是‘*’  还是‘指针变量名’)比较近就是修饰谁的,比如:

(a)const * p:表示带*运算对象的是常量,也就是*p 不可变 (暗示p可变,p不带‘*’ 嘛)

(b)* const p:表示变量名是常量  也就是p不可变 (暗示*p可变,const没有修饰‘*“ 嘛)
  • 13
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值