指针常量与常量指针

注:const :常量,意为不变的量

先看以下定义

A.int const *p;

B.const int *p;

C.int *const p;

D.const int *constp;

E.int const *constp;

以上五种中A和B表示的是指针常量,C、D、E表示的是常量指针

如何划分指针常量和常量指针

技巧:从右往左读,*翻译成pointerto(指向)

例如:A:p is a pointerto const int (p是一个指针指向一个常量)

      C:p is a constpointer to int(p是一个指向整数的常量指针)

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

I.指针常量

这是一个偏正短语,重点在后面,就是说指针常量就是一个指针所指向常量

例如:

      A:p is a pointer to const int (p是一个指针指向一个常量) 重点在常量

,相当于P这个指针指向一个常量,p指向的内存是一个常量,常量不可变,

但p可变,例如这个常量是1,定义一个int const *p=1后,int const = 1,不可变

但分配的地址p是可以改变的。

II.常量指针

  是指针

例如:

C:p is a const pointer to int(p是一个指向整数的常量指针) 重点在指针

P是一个常量指针,p是指针,同时p是一个常量,不可变,但 *const p指向的

是一个int ,这个int是可变的。假设系统给*const p分配的地址是 60378F,那么

在接下来的程序执行中,60378F这个地址不会改变,但它指向的int 可以为任意整数

 

实例演示:

const int a=12;     //定义一个常量a

int *p=&a;         //定义一个指针指向a

这是个指针常量,此时 p是一个整型指针,它指向一个常量a,等价于 const int *p =&a;

注意 a是常量,a的值不可变;

 

 

int a =12;

int const *p=&a;

这个也是个指针常量

等价于int const *p=&a;

 

int a =12;

int *const p=&a;

常量指针。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值