指向常量的指针和常量指针;常量指针和指针常量;指向常量的常指针;

本文深入解析了三种指针类型:指向常量的指针、常量指针和指向常量的常指针的区别与用法。阐述了每种类型的定义、形式及意义,帮助读者理解并正确使用这些指针。

 

今天看书看到常量指针发现和我以前看到的常量指针怎么是反的,本来以为书上是错的,然后深究一下。其实都没错,是翻译的方式不同而已,其实指的一个意思。可以划分一下:

 指向常量的指针和常量指针为一组说法,常量指针和指针常量为一组说法。

 一、pointer to a constant

叫法:有两种不同的叫法也就是第一组中的指向常量的指针,第二组中的常量指针。

形式:

long value = 9999L;
const long *pvalue = &value;
long const *pvalue = &value;     //两种写法  意思一样

         

意义:

  1. pointer to a constant指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改;
  2. 指针还可以指向别处,因为指针本身只是个变量,可以指向任意地址; 

    

*pvalue = 8888L;       //Error

value = 7777L;         //Ok

long number = 8888L;
pvalue = &number;      //Ok

  二、a constant pointer

叫法:有两种不同的叫法也就是第一组中的常量指针第二组中的指针常量。(千万不能弄混)

形式: 

long value = 9999L;
long *const pvalue = &value;

意义:

  1. 指针本身是常量,指向的地址不可以变化,但是指向的地址所对应的内容可以变化;
long number = 8888L;
pvalue = &number;      //Error

*pvalue = 8888L;       //Ok

 三、指向常量的常指针

这个倒是没有什么歧义,但是写法上有两种写法

const int *const p;

int const *const p;

意义:

  1. p是一个指向常量的常量指针,所有信息都是固定不变的,不能改变它指向的内容,也不能改变存储在p中的地址;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

混元太极马保国

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值