当前位置: 首页 > news >正文

const(常量)

        const允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。

1、const修饰普通变量

        当使用const修饰普通类型的变量a时,该变量a会被编译器看成常量,而对常量赋值是违的。

const int a = 10;
int b = a; // 正常赋值
a = 20; // 错误,不能给常量赋值

        实际上,虽然不能直接对常变量进行修改,但是我们可以通过指针对常变量进行修改:

2.1 const修饰指针指向的内容,则内容为不可变量。

        即 const修饰的常量指针:指针本身是一个常量(既*ptr是不可变的),不能修改指向地址所存储的值,可以修改其指向地址(ptr)。

// 理解为: const在int*前,所以
int a = 10, b = 20;
const int* ptr = &a;// 修改指向地址所存储的值是不合法的
*ptr = 20; // 错误,编译器会报错// 修改指向的地址是合法的
ptr = &b; // 合法,可以修改指针指向的地址

2.2 const 修饰指针,指针为不可变量。

        即 const修饰的指针常量:指针指向的是一个常量(既ptr是不可变的),能修改指向地址所存储的值,不可以修改其指向地址(ptr)。

int a = 10, b = 20;
int* const ptr = &a;// 修改指向地址所存储的值是合法的
*ptr = 20; // 合法,可以修改指向地址处的值// 修改指针指向的地址是不合法的
ptr = &b; // 错误,编译器会报错

2.3  const 同时修饰指针和指针指向的内容,指针和指针指向的内容都为不可变量。

http://www.dtcms.com/a/345128.html

相关文章:

  • Android.bp 基础
  • 安全帽检测算法如何提升工地安全管理效率
  • AI 向量库:从文本到数据的奇妙之旅​
  • 编排之神--Kubernetes中包管理Helm工具详解
  • Jmeter压测实操指南
  • 金融量化入门:Pandas 时间序列处理与技术指标实战(含金叉死叉 / 均线策略)
  • GaussDB SQL引擎(1)-SQL执行流程
  • 从创新到落地:技术驱动下的企业管理变革新趋势
  • python-对图片中的人体换背景色
  • 小杰机械视觉(three day)——图象旋转、镜像、缩放、矫正
  • Android UI界面绘制
  • AI赋能体育训练突破:AI动作捕捉矫正精准、战术分析系统提效率,运动员破瓶颈新路径
  • AI计算提效关键。自适应弹性加速,基于存算架构做浮点运算
  • 自学嵌入式第二十五天:数据结构-队列、树
  • JavaWeb前端05(Vue工程化,Vue组件两种风格:组合式API 和 选项式API)及简单案例)
  • 文件下载和文件上传漏洞
  • FTP/TCP上传下载文件
  • C++ 判断: 深度解析与实战指南
  • 华中产业带跨境电商进阶:亚马逊加速器驱动下的多维度能力重构
  • CSS @media 媒体查询
  • Python从入门到自动化运维
  • 凌霄飞控开发日志兼新手教程——基础篇:认识基本的文件内容和相关函数作用(25电赛备赛版)
  • Quarkus 从入门到精通完整指南Q
  • Python socket远程部署工具服务
  • 云原生作业(k8s总结)
  • 爬虫基础学习-配置代理、以及项目实践
  • Spring Cloud系列—SkyWalking告警和飞书接入
  • CGI-CVE-2016-5385
  • 【实时Linux实战系列】实时网络流量监测与管理
  • tauri配置允许执行eval脚本,在打包cocos游戏web/phone移动端的时候一定要配置