小学生学C++编程语法知识(C++中的 const 详解)
C中的 const 详解同学们上一节我们学习了staticstatic 解决的是“东西活多久、谁能访问”。今天学习另一个非常重要的关键词const它解决的是这个东西能不能被修改一、const是什么const 是constant的缩写。意思常量不可改变。例如普通变量int age 10; age 11;可以修改。但是const int age 10; age 11;错误因为const int age表示age 是一个不能改变的数字。同学们理解普通变量像铅笔盒里的铅笔 可以拿出来换const变量像写在毕业证上的名字 不能随便修改二、const修饰变量1. const基本用法#includeiostream using namespace std; int main() { const int MAX 100; cout MAX; }这里MAX表示最大值。以后不能MAX200;为什么程序员喜欢用const例如const double PI3.1415926;如果不用double PI3.1415926;程序员可能不小心PI5;导致错误。所以const是一种保护机制。三、const修饰指针重点指针是C难点。const和指针结合有三种情况。情况1指针指向的内容不能改代码int a10; const int *pa;意思p指向的数字不能通过p修改例如*p20;错误但是a20;可以。为什么因为p只是说我不能改别人。不是a不能改。图a ---- | 10 | ---- ^ | p 不能 *p20 可以 a20情况2指针本身不能改变代码int a10; int * const pa;意思p这个指针固定了。例如pb;错误。但是*p20;可以。因为地址不能换但是地址里面的数据可以改。理解p是一把固定钥匙 钥匙不能换 但是可以打开箱子修改东西情况3指针和内容都不能改代码const int * const pa;表示两个都禁止不能*p20;也不能pb;四、const修饰函数参数工程中大量使用。例如void print(int x) { }普通参数函数可能修改x。如果void print(const int x) { }表示函数内部不能修改x。但是对于int来说意义不大。更重要的是const 引用例如void show(const string s) { }什么意思拆开const 不能修改 string 不用复制提高效率合起来只读引用。为什么需要例如有一个很大的字符串string s;如果void fun(string s)调用fun(s);会复制一份。浪费空间。使用void fun(const string s)只传地址。但是不能修改。这就是C工程中最常见写法。五、const修饰函数返回值例如const int get() { return 10; }表示返回值不能修改。不过对于基本类型意义不大。常见const string getName() { return name; }表示返回一个引用。但是不能修改。六、重点const成员函数这是今天的核心。很多初学者第一次看到class Student { public: void show() const; };会疑惑为什么函数后面还有const我们先看普通成员函数class Student { int age; public: void setAge(int x) { agex; } };这个函数会修改对象。但是如果void show() { coutage; }它只是查看。没有修改。我们希望告诉编译器这个函数保证不会改变对象。所以写void show() const { coutage; }七、const成员函数本质例如class Student { int age; public: void show() const { } };后面的const表示隐藏的this指针从Student *this变成const Student *this也就是说函数内部不能修改成员变量。例如正确void show() const { coutage; }错误void show() const { age20; }为什么因为this是const Student*不能修改对象。八、为什么需要const成员函数看一个例子class Student { int age; public: Student(int a) { agea; } void show() { coutage; } };现在创建一个const对象const Student s(10);调用s.show();错误为什么因为s是不能改变的学生但是show()没有保证不会改变。改成void show() const { coutage; }就可以。九、实际应用STL中的const例如vectorvectorint v;很多函数size()就是size() const为什么因为查看长度v.size();不会改变vector。strings.length();也是const函数。十、const和static区别总结关键字作用static改变生命周期、共享const禁止修改、保护数据记忆static: 这个东西活多久 const: 这个东西能不能改十一、竞赛中const常见场景1. 大数组传递错误void solve(vectorint a)会复制。推荐void solve(const vectorint a)含义不复制 不能修改2. 类里面查询函数例如class Node { public: int value; int getValue() const { return value; } };3. 防止代码错误例如const int N100005;数组大小int a[N];避免被修改。十二、一句话口诀const变量出生以后不能改变。const指针看const靠近谁谁不能动。const参数传过来只看不改。const成员函数承诺自己只读对象不改变成员。课后思考题下面代码哪里错误class Student { int age; public: void show() const { age10; coutage; } };答案错误age10;原因show()是 const成员函数。它承诺我不会修改Student对象。所以this相当于const Student*成员变量只能读不能写。

相关新闻

【革新体验】Universal-Updater:如何让3DS自制软件管理变得像手机应用商店一样简单

【革新体验】Universal-Updater:如何让3DS自制软件管理变得像手机应用商店一样简单

【革新体验】Universal-Updater:如何让3DS自制软件管理变得像手机应用商店一样简单 【免费下载链接】Universal-Updater An easy to use app for installing and updating 3DS homebrew 项目地址: https://gitcode.com/gh_mirrors/un/Universal-Updater 你是…

2026/8/3 15:43:12 阅读更多 →
终极植物大战僵尸修改器:PvZ Toolkit完全指南

终极植物大战僵尸修改器:PvZ Toolkit完全指南

终极植物大战僵尸修改器:PvZ Toolkit完全指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 你是否曾经在《植物大战僵尸》的无尽模式中苦苦挣扎?是否想要创造独特的游戏体…

2026/8/3 15:43:12 阅读更多 →
如何彻底告别Wand每日2小时限制:完整免费解决方案揭秘

如何彻底告别Wand每日2小时限制:完整免费解决方案揭秘

如何彻底告别Wand每日2小时限制:完整免费解决方案揭秘 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 你是否厌倦了每次游戏修改时被2小…

2026/8/3 15:43:12 阅读更多 →

最新新闻

【YOLOv8交通信号灯检测系统】Python源码+PyQt5界面+数据集+训练代码 基于YOLOV8开发车载摄像头交通信号灯智能识别完整项目,搭载PyQt5可视化操作界面

【YOLOv8交通信号灯检测系统】Python源码+PyQt5界面+数据集+训练代码 基于YOLOV8开发车载摄像头交通信号灯智能识别完整项目,搭载PyQt5可视化操作界面

深度学习 YOLO 系列】基于YOLO V8的车载摄像头交通信号灯检测识别系统【python源码Pyqt5界面数据集训练代码】1基于YOLOv8交通信号灯检测识别系统 一、项目信息表项目详情参数项目名称YOLOv8车载交通信号灯检测识别系统开发框架Python YOLOv8 PyQt5功能支持单张图片检测、文件…

2026/8/3 19:22:05 阅读更多 →
太仓企服同行内卷严重,依靠 GEO 抢占本地搜索入口

太仓企服同行内卷严重,依靠 GEO 抢占本地搜索入口

先问个问题:你在豆包、DeepSeek里搜过“太仓代理记账哪家好”或者“太仓做ISO认证的机构推荐”吗? 太仓一个做财税咨询的老张试了一下,回来脸色不太好看。他在本地做了七八年,服务过几百家企业,结果AI推荐了五家同行&a…

2026/8/3 19:22:05 阅读更多 →
Element Plus全局配置:依赖注入实现组件统一管理

Element Plus全局配置:依赖注入实现组件统一管理

1. 项目概述:为什么需要全局配置 在任何一个稍具规模的前端项目中,组件库的使用都不仅仅是“引入即用”这么简单。以我们团队最近重构的后台管理系统为例,项目初期为了快速上线,直接使用了 Element Plus 的默认样式和配置。但随着…

2026/8/3 19:22:05 阅读更多 →
苏州初创企业地址挂靠,适合小规模还是一般纳税人?

苏州初创企业地址挂靠,适合小规模还是一般纳税人?

“我注册公司时是小规模,用挂靠地址没问题。半年后升了一般纳税人,税务局突然要求提供租赁合同和水电发票原件核查,挂靠地址完全拿不出来,差点被认定虚开。”——这是苏州一位贸易老板的真实经历。 很多初创者在注册时只想着“先有…

2026/8/3 19:22:05 阅读更多 →
苏州一般纳税人升级一站式流程,规模扩张企业必读

苏州一般纳税人升级一站式流程,规模扩张企业必读

生意做大了,身份也得跟上——别让“小规模”卡住你的发展 做B端业务的老板最怕什么?客户要13%的专票,你开不出来,订单直接黄了。或者连续12个月的销售额逼近500万,你还在犹豫要不要转——等到系统自动触发强制升级才发…

2026/8/3 19:22:05 阅读更多 →
技术团队管理的致命陷阱与预防策略

技术团队管理的致命陷阱与预防策略

1. 项目概述:反向思考团队建设的警示意义 "如何搭建一支搞垮公司的技术团队"这个标题看似荒诞,实则蕴含深刻的管理智慧。我在互联网行业摸爬滚打十二年,见证过无数技术团队从辉煌走向衰败的过程。这个项目实际上是通过反向推演的方…

2026/8/3 19:21:04 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →