c++中指针常量和常量指针有什么区别_c++ const修饰指针区别说明

const修饰指针时,若修饰ptr则内容不可改(常量指针),如const int ptr;若修饰ptr则指针本身不可改(指针常量),如int* const ptr;两者均修饰则为指向常量的常量指针。

c++中指针常量和常量指针有什么区别_c++ const修饰指针区别说明

在C++中,const关键字用于限定变量不可修改,当它与指针结合使用时,会产生不同的语义。理解“指针常量”和“常量指针”的区别,关键在于看const修饰的是指针本身,还是指针指向的数据

常量指针(const pointer to variable)

常量指针指的是:指针指向的内容是常量,不能通过该指针修改所指向的数据,但指针本身可以改变指向。

语法形式:

const int* ptr;
// 或等价写法
int const* ptr;

说明:

立即学习“C++免费学习笔记(深入)”;

const修饰的是*ptr,即指针指向的值是只读的。你可以让ptr指向其他地址,但不能通过*ptr去修改内容。

示例:

int a = 10, b = 20;
const int* ptr = &a;
// *ptr = 30; // 错误:不能修改指向的内容
ptr = &b; // 正确:可以改变指针的指向

指针常量(pointer to const)

更准确的说法是“指向常量的指针”,即:指针本身是一个变量,但它指向一个常量数据。这种说法有时被误称为“指针常量”,实际上标准术语中“指针常量”应指指针本身为常量。

上面的const int* ptr其实是“指向常量的指针”,而下面才是“指针本身是常量”。

指针常量(pointer is const)

指针常量指的是:指针本身的值(即它保存的地址)不能改变,一旦初始化后就不能再指向别的地址,但可以通过指针修改其所指向的内容(除非数据也是const)。

语法形式:

int* const ptr = &var;

说明:

立即学习“C++免费学习笔记(深入)”;

const修饰的是ptr本身,所以指针不能重新赋值。可以修改*ptr的值(前提是原数据不是const)。

示例:

int a = 10;
int* const ptr = &a;
*ptr = 20; // 正确:可以修改指向的内容
// ptr = &b; // 错误:指针本身不能改变指向

指向常量的常量指针(const pointer to const)

指针本身不能变,指向的内容也不能通过该指针修改。

语法:

const int* const ptr = &a;

说明:

立即学习“C++免费学习笔记(深入)”;

不能修改*ptr(内容是const)。不能修改ptr(指针是const)。

示例:

int a = 10, b = 20;
const int* const ptr = &a;
// *ptr = 30; // 错误
// ptr = &b; // 错误

总结记忆方法:从右往左读声明

const int* ptr → ptr 是一个指向 const int 的指针(内容不能改)。int* const ptr → ptr 是一个 const 指针,指向 int(指针不能改)。const int* const ptr → ptr 是一个 const 指针,指向 const int(都不能改)。

基本上就这些。搞清楚const修饰的是*还是指针名,就能准确判断权限。

以上就是c++++中指针常量和常量指针有什么区别_c++ const修饰指针区别说明的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1480602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
c++17中的结构化绑定怎么使用_c++17结构化绑定语法与示例讲解
上一篇 2025年12月19日 04:46:40
c++中的new和delete怎么用_c++动态内存分配与释放说明
下一篇 2025年12月19日 04:47:03

相关推荐

  • windows怎么重启日志查看

    使用事件查看器中的事件ID 41、6005、6006和1074筛选系统日志,结合可靠性监视器与蓝屏分析工具,可准确区分正常重启与意外崩溃。 要查看Windows系统的重启日志,最直接且信息最丰富的途径就是使用“事件查看器”(Event Viewer)。它详细记录了系统启动、关机以及各种异常事件,是追…

    2026年8月28日
    000
  • C# 进程间通讯

    一、进程间通信的方式 1)共享内存 包括:内存映射文件、共享内存DLL、剪切板。 2)命名管道和匿名管道 3)消息通信 4)利用代理方法,例如SOCKET、配置文件、注册表方式等。 方法一:通信。 进程间通信的方式多种多样,常用的有共享内存(如内存映射文件、共享内存DLL、剪切板等)、命名管道和匿名…

    2026年8月28日
    200
  • Spring依赖注入:注入接口和实现类,有何区别?

    Spring框架依赖注入:接口和实现类的最佳实践 本文分析Spring依赖注入中注入接口与注入实现类的差异,并结合实例阐述其优劣。 文中案例展示了两种Spring依赖注入方式:直接注入实现类和注入接口类型。前者输出结果符合预期,而后者返回Object类型而非预期的IFactoryMethodServ…

    2026年8月28日
    100
  • “+普惠、+性能、+智能”:华为“三板斧”破局商业市场全闪落地挑战

    当数字技术与表演艺术在国家戏剧影视艺术教育的最高学府——中央戏剧学院的舞台上交相辉映时,一场数据基础设施的变革徐徐拉开序幕。 在中央戏剧学院“智能艺术教育空间”样板点,华为极简全闪数据中心赋能艺术教学过程的实时采集、在线导播、高清渲染、跨空间分享、互动学习和教学,实现跨校区高效数据互通,高清实时渲染…

    2026年8月28日
    100
  • 谷歌浏览器缓存清理后登录不了账号是什么原因

    当您在清理谷歌浏览器缓存后发现无法自动登录账号,这通常并非由清理缓存直接导致,而是因为在清理过程中,您很可能同时清除了一个名为“Cookie”的关键数据。本文将详细解释这一现象背后的原因,阐明缓存与Cookie的功能区别,并提供解决此问题的正确方法,帮助您理解为何会出现这种情况以及未来如何避免。 立…

    2026年8月28日
    100
  • 红色警戒2共和国之辉快捷键大全

    红色警戒2共和国之辉快捷键大全红色警戒2共和国之辉快捷键大全红色警戒2共和国之辉快捷键大全红色警戒2共和国之辉快捷键大全

    想要在红警中领先对手,同样的时间内建造速度更快、部队数量更多,熟练掌握快捷键是不可或缺的条件之一。以下为红警全系列快捷键汇总。 【控制热键】 ◎高级功能键◎◎名称 ◎功能键 *1.部署单位/部队 D 说明:适用于中国和美国大兵的坐立与起立动作,选中士兵后按下D键。同时也可用于共和国版本中盟军坦克的形…

    2026年8月28日 用户投稿
    200
  • 敌人个性十足!制作人称《明末:渊虚之羽》BOSS战注重沉浸与挑战

    近日,海外媒体game rant对国产游戏《明末:渊虚之羽》的制作人夏思源进行了专访。这款由leenzee games开发的作品,凭借其浓厚的中国神话背景和精妙的战斗机制,吸引了全球玩家的高度关注。 在采访过程中,夏思源深入分享了游戏中BOSS战的设计理念与创意来源。他表示,每一场BOSS战不仅仅是…

    2026年8月28日
    500
  • HTTP1.1与HTTP2的区别_HTTP1.1与HTTP2有哪些区别

    http/2通过多路复用在单个tcp连接上并行传输多个独立的数据流,每个流的数据被分割为带流id的二进制帧并交错发送,接收方根据流id重新组装,从而避免了http/1.1中因单个请求阻塞导致后续请求等待的队头阻塞问题;2. hpack头部压缩通过静态字典、动态字典和哈夫曼编码减少重复头部信息的传输量…

    2026年8月28日
    400
  • 电脑提示缺少“api-ms-win-core-path-l1-1-0.dll”的4种解决方案

    电脑提示缺少“api-ms-win-core-path-l1-1-0.dll”的4种解决方案电脑提示缺少“api-ms-win-core-path-l1-1-0.dll”的4种解决方案电脑提示缺少“api-ms-win-core-path-l1-1-0.dll”的4种解决方案电脑提示缺少“api-ms-win-core-path-l1-1-0.dll”的4种解决方案

    当你在电脑上启动某些软件或游戏时,突然弹出提示:“缺少 api-ms-win-core-path-l1-1-0.dll 文件,程序无法启动”,这确实令人困扰。这通常是由于系统所需的运行库文件丢失或损坏所引起的。别担心,遇到此类问题无需慌张。本文将为你提供4种实用的解决方案,帮你快速修复缺失的 dll…

    2026年8月28日 用户投稿
    100
  • 手把手教你电脑操作系统怎么查正版

    手把手教你电脑操作系统怎么查正版手把手教你电脑操作系统怎么查正版手把手教你电脑操作系统怎么查正版手把手教你电脑操作系统怎么查正版

    大家应该都清楚,电脑操作系统存在正版、盗版以及授权的区别,那么问题来了,如何判断windows 10系统是不是正版呢?别担心,有我在,接下来我就给大家分享一下如何检查电脑系统是否为正版的操作步骤。 操作流程如下: 首先,点击屏幕左下角的“开始菜单”,然后选择“设置”以进入设置界面。 接着,点击左侧菜…

    2026年8月28日 用户投稿
    100
  • VSCode怎么看Memory_VSCode内存使用分析与性能检测教程

    首先通过任务管理器或VSCode内置进程资源管理器查看内存占用情况,再结合Chrome DevTools进行性能分析,重点关注CPU时间、内存分配、垃圾回收、渲染时间和长任务等指标,排查插件问题并优化设置以降低内存消耗。 VSCode的内存占用确实是个问题,尤其是在打开大型项目或者安装了大量插件之后…

    2026年8月28日
    200
  • Hystrix降级和熔断机制有何区别?如何实现差异化返回结果B和C?

    Hystrix:巧妙运用降级和熔断机制,实现差异化返回结果 在使用Hystrix处理外部服务调用时,服务不可用或超时是常见问题。为了保障系统稳定性,Hystrix提供了降级和熔断两种机制。本文将深入探讨两者区别,并讲解如何实现差异化返回结果(结果B和结果C)。 许多开发者混淆降级和熔断。实际上,降级…

    2026年8月27日
    200
  • 华为Mate 80参数细节曝光:双层OLED直屏+3D人脸

    近日,有数码博主透露了疑似华为mate 80系列新机的部分配置和功能信息。据cnmo了解,该系列新机预计将在2025年第四季度(或为12月)发布,包括标准版、pro、pro+以及rs 非凡大师四款版本,主打双层oled直屏设计、3d人脸识别技术和影像系统升级等亮点。 华为手机 据悉,华为Mate 8…

    2026年8月27日
    500
  • 服务器资源(CPU/内存)的优化分配

    优化服务器上的cpu和内存资源可以通过以下步骤实现:1. cpu优化:通过任务调度和并行处理,如使用多线程编程提高cpu利用率。2. 内存优化:通过内存泄漏检测、选择合适的数据结构和缓存管理,如lru缓存来减少内存使用。持续监控和调整是关键,以提升系统性能和稳定性。 你想知道如何更好地优化服务器上的…

    2026年8月27日
    200
  • Web H5轻量级游戏开发,现在都用什么技术?

    Web H5轻量级游戏开发技术选型指南 Flash的退出给Web游戏开发带来了新的挑战,开发者们纷纷寻找替代方案来构建类似4399小游戏的轻量级H5游戏。尤其对于偏好JavaScript的前端开发者来说,选择合适的技术栈至关重要。本文针对Web H5轻量级游戏开发,探讨几种主流技术和框架。 目标是开…

    2026年8月27日
    200
  • Java循环模式打印:理解print与println实现精确布局

    本文深入探讨java中`system.out.print()`与`system.out.println()`方法的关键区别,尤其是在使用循环结构进行字符模式打印时。通过具体代码示例,我们将展示如何利用这两个方法精确控制输出的水平与垂直布局,解决常见的垂直堆叠问题,从而实现预期的二维图形模式打印效果,…

    2026年8月27日
    200
  • 基于Session的用户登录:服务器端如何真正验证用户身份?

    深入探讨基于Session的用户登录安全性 许多开发者在学习基于Session的用户登录时,容易误解服务器端的身份验证机制。普遍的认知是服务器仅检查Session ID是否存在,但这种方法存在安全隐患。 本文将揭示这种误区。如果攻击者通过浏览器控制台伪造Session ID,服务器仅依靠sessio…

    2026年8月27日
    100
  • 抖音托管商品和非托管商品有什么区别?商品橱窗和抖音商城有什么区别

    抖音作为一个热门的短视频社交平台,已成为众多商家和用户的重要选择。在该平台上,商家可以采用托管商品与非托管商品两种方式进行销售。那么,这两者之间到底有何不同?我们又该如何做出合适的选择?接下来,我们将为您全面解析抖音托管商品与非托管商品之间的差异,助您做出更明智的决策。 一、抖音托管商品与非托管商品…

    2026年8月27日
    300
  • TypeScript类型推断的迷惑之处:四种等效的ReturnType类型定义及条件类型与联合类型匹配的难题?

    typescript 类型推断的迷惑:四种等效的 returntype 类型定义及条件类型与联合类型匹配的挑战 本文深入探讨 TypeScript 中一些令人费解的类型推断行为。我们将分析四种看似不同的类型定义,解释它们为何最终产生相同的结果,并解决一个与条件类型和联合类型匹配相关的难题。 首先,让…

    2026年8月27日
    100
  • 抖音精选联盟如何利用DOU+推广 抖音精选联盟付费流量的投放策略

    dou+推广精选联盟的核心是内容加热而非硬广,1. 首先选择有爆款潜质的优质带货视频,确保播放量、互动率或商品点击表现良好;2. 投放时设定明确目标,优先选择“提升视频播放量互动”或“提升商品点击转化”;3. 精准定向需结合兴趣标签、达人相似粉丝、年龄性别地域等维度,通过小预算测试不同组合优化roi…

    2026年8月27日
    100

发表回复

登录后才能评论
关注微信