简单总结C++中指针常量与常量指针的区别
作者:王路情 发布时间:2022-06-28 17:33:12
标签:C++,指针常量,常量指针
我们先回顾下,什么是指针?什么是常量?指针是一种特殊的变量,它里面存储的内容是内存地址。常量是指其里面存储的内容不能发生改变的量。明白了这两个概念后,我们现在正式进入指针常量与常量指针。
1.指针常量与常量指针的概念
指针常量就是指针本身是常量,换句话说,就是指针里面所存储的内容(内存地址)是常量,不能改变。但是,内存地址所对应的内容是可以通过指针改变的。
常量指针就是指向常量的指针,换句话说,就是指针指向的是常量,它指向的内容不能发生改变,不能通过指针来修改它指向的内容。但是,指针自身不是常量,它自身的值可以改变,从而指向另一个常量。
2.指针常量与常量指针的声明
指针常量的声明:数据类型 * const 指针变量。
常量指针的声明:数据类型 const * 指针变量 或者 const 数据类型 *指针变量。
常量指针常量的声明:数据类型 const * const 指针变量 或者 const 数据类型 * const 指针变量。
3.指针常量与常量指针的使用
3.1 指针常量的例子
/*指针常量的例子*/
int a,b;
int * const p;
p = &a;//正确
p = &b;//错误
*p = 20;//正确
指针常量声明的时候必须赋初始值。使用指针常量可以增加代码的可靠性和执行效率。
3.2 常量指针的例子
/*常量指针的例子*/
int a,b;
int const *p;
p = &a;//正确
p = &b;//正确
*p = 20;//错误
关于区分指针常量的一个小技巧:const后的内容为不能修改的。例如指针常量 int * const p = &a;则表示指针p的内容不能修改;常量指针int const *p = &a;则表示指针p所指向的内容不能修改。
到此,什么是指针常量和常量指针,以及两者的差异,应该清晰和明朗了。


猜你喜欢
- 前言本文主要给大家介绍了关于Spring Boot集成之异步调用Async的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细
- 2PC两阶段提交协议分布式事务通常采用2PC协议,全称Two Phase Commitment Protocol。该协议主要为了解决在分布式
- 线程组构造方法我们看这个线程组,线程组名字是system,设置优先级,然后指定父线程是空,可以看出这个是根线程组,这个方法是私有的,不是给我
- springMVC的生命周期,听到的时候都没有反应过来,springMVC还有生命周期?现在看来生命周期就是springMVC的流程,Spr
- 在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable<T>
- 本文实例讲述了Java实现过滤掉map集合中key或value为空的值。分享给大家供大家参考,具体如下:import java.util.C
- BroadcastReceiver(广播 * ),在Android开发中,BroadcastReceiver的应用场景非常多,属于Andro
- 固定的策略有时候还是无法满足千变万化的需求变动,一方面需要支持特定的用户需求,另一方面又得尽可能的复用代码,避免重复开发,这就需要将这部分的
- 本文实例讲述了Android TextView实现带链接文字事件监听的三种常用方式。分享给大家供大家参考,具体如下:/** * TextVi
- 之前自己从来没有做过发送邮箱的功能,前段时间项目需要,在找了很多帖子之后,终于实现了。之后有整理了一下,写了一个类。直接给类传递信息,就可以
- rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用
- 一、前言随着互联网项目前后端分离方式的流行,前端与后端交给不同的人员开发,项目沟通成本也随之提高。主要表现在WebAPI接口的沟通,Swag
- mybatis-plus 新增/修改 自动填充指定字段1.需要修改的字段在模型类上添加@TableField(fill = FieldFil
- 目录有状态组件异步 async/await引入 flutter_easyrefresh使用 flutter_easyrefresh运行结果结
- 1、通过WindowManager获取DisplayMetrics dm = new DisplayMetrics();getWindowM
- 在之前文章的铺垫下,再为大家分享一篇:Android手势密码,附源码下载,不要错过。源码下载:http://xiazai.jb51.net/
- 本文实例讲述了Android权限操作之uses-permission。分享给大家供大家参考,具体如下:我们在安装Android软件的时候,系
- 手头项目需要抓取一个用js渲染出来的网站中的数据。使用常用的httpclient抓回来的页面是没有数据。上网百度了一下,大家推荐的方案是使用
- 本文实例讲述了C#画笔Pen绘制自定义线的帽子。分享给大家供大家参考。具体如下:using System;using System.Coll
- 1. RocketMQ Topic创建机制以下源码基于Rocket MQ 4.7.0RocketMQ Topic创建机制分为两种:一种自动创