简单总结C++中指针常量与常量指针的区别
作者:王路情 时间:2022-06-28 17:33:12
我们先回顾下,什么是指针?什么是常量?指针是一种特殊的变量,它里面存储的内容是内存地址。常量是指其里面存储的内容不能发生改变的量。明白了这两个概念后,我们现在正式进入指针常量与常量指针。
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所指向的内容不能修改。
到此,什么是指针常量和常量指针,以及两者的差异,应该清晰和明朗了。
标签:C++,指针常量,常量指针
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
一文理解kafka rebalance负载均衡
2022-12-02 10:35:22
![](https://img.aspxhome.com/file/2023/9/122179_0s.jpg)
C#委托初级使用的实例代码
2022-12-01 09:59:44
C#将dll打包到程序中的具体实现
2022-11-22 16:39:34
![](https://img.aspxhome.com/file/2023/1/91331_0s.jpg)
详解C# 线程的挂起与唤醒
2023-03-12 12:40:02
Visual Studio 2022 安装低版本 .Net Framework的图文教程
2023-06-22 19:18:44
![](https://img.aspxhome.com/file/2023/0/78990_0s.png)
Android之复选框对话框用法实例分析
2023-10-03 05:07:03
![](https://img.aspxhome.com/file/2023/1/84751_0s.png)
微信小程序 springboot后台如何获取用户的openid
2023-01-13 17:07:42
C#静态static的用法实例分析
2022-06-30 09:37:27
Java 8 Stream操作类型及peek示例解析
2021-07-17 20:42:08
C# Dynamic之:ExpandoObject,DynamicObject,DynamicMetaOb的应用(上)
2022-11-02 06:21:42
![](https://img.aspxhome.com/file/2023/1/74811_0s.jpg)
详解AOP与Filter拦截请求打印日志实用例子
2021-09-26 22:03:10
![](https://img.aspxhome.com/file/2023/1/72911_0s.png)
SpringBoot配置全局异常处理器捕获异常详解
2023-11-28 05:08:07
Java多线程之同步锁-lock详解
2023-12-16 14:40:08
![](https://img.aspxhome.com/file/2023/0/62230_0s.png)
详解Java中数组判断元素存在几种方式比较
2021-09-25 13:49:21
Android SlidingDrawer 抽屉效果的实现
2023-08-02 07:58:30
![](https://img.aspxhome.com/file/2023/5/88665_0s.jpg)
Kotlin Flow常用封装类StateFlow使用详解
2022-07-16 03:46:28
SpringBoot中的Aop用法示例详解
2023-03-31 14:12:00
![](https://img.aspxhome.com/file/2023/6/62986_0s.png)
Java KindEditor粘贴图片自动上传到服务器功能实现
2023-08-07 01:42:33
![](https://img.aspxhome.com/file/2023/2/57902_0s.gif)
c#扫描图片去黑边(扫描仪去黑边)
2022-11-06 11:45:55
SpringBoot2零基础到精通之数据与页面响应
2022-08-25 22:26:41
![](https://img.aspxhome.com/file/2023/5/110925_0s.jpg)