常量指针和指针常量巧妙记忆方法

转载:https://blog.csdn.net/a15261893837/article/details/70767385

1.常量指针通常有两种表示方法:

方法 1: const double  * ptr;     //数据类型在const左右是意思一样的,只是写法不一样

方法 2: double const  *ptr;

2.指针常量通常表示为:

double * const ptr;

很多人经常遇见上述三种表示方法处于懵的状态,现提供记忆方法如下。

首先,不管三七二十一先把double * ptr写好,因为上述三种表示方法,double * ptr这三个相对顺序是不变的,并标记位置(1)double(2) * (3)ptr;

然后,需要特殊记忆一下在(1)(2)位置添加const,为相同表示,在(3)处添加为另一种表示;

下面读法为本文重点。

方法1: const double * ptr;//const读作常量,*读作指针,按照顺序读作常量指针

方法 2: double const *ptr;//const读作常量*读作指针,按照顺序读作常量指针

double * const ptr;//const读作常量,*读作指针,按照顺序读作指针常量,

const靠近*还是double,那么谁就是不变的。

指针常量:指的是指针本身就是个常量,注意这里说的是指针本身是常量,指针是用来指向某个对象的,(指针也就是这个对象的地址)指针本身是常量,就是这个地址是个常量,不能更换,但是可以更换这个地址存放的值,举个例子,这个指针指向一个房子,永远的指向这个房子,房子不能更换,但是房子里面的人可以换。

常量指针指向常量的指针,与上面的相反,你可以用它来指向其他的房子,但是却不能通过它来更换房子里面人。

char ch = 'h';
char s = 'm';
const char*p1 = &ch;//常量指针:可以通过它更换指向的对象,但是不能改变指向对象的值;
char *const p2 = &ch;//指针常量:可以通过它更改对象的值,但是不能更改指向的对象;
p1 = &s;//正确;
*p1 = 'k';//错误;
*p2 = 'k';//正确;
p2 = &s;//错误;

 

 

 

 

 

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值