2.4 const限定符
#因为const对象一旦创建后其值就不能被改变,因此const对象必须初始化
默认状态下,const对象仅在文件内有效.....
#编译器会在编译过程把用到const变量的地方替换成起对应的值
#如果我们想要只在一个文件中定义const对象,而在多个文件中使用它(多文件间共享const对象)
解决办法是:对于const变量不管是在定义还是声明都添加extern关键字,这样只需定义一次即可
2.4.1 const的引用(常量引用)
初始化和const的引用
对const的引用可以引用一个非const的对象(常量引用对象的值不能被改变,但并不代表常量引用所引用对象的值是不能被改变的)
2.4.2 指针和const
想要存放常量对象的地址,只能使用指向常量的指针
和常量引用一样,指向常量的指针也没有规定其所指向的对象必须是一个常量
const指针(常量指针)
常量指针必须初始化,并且一旦赋值后,其值就不能再改变(也就是存放在指针中的地址不能改变)
把*放在const关键字之前,说明指针是一个常量
2.4.3 顶层const
顶层const:表示指针是一个常量(即常量指针)
底层const:表示指针指向的值是一个常量
2.4.4 constexpr和常量表达式
常量表达式:是指值不会改变并且能够在编译时计算出结果的表达式
constexpr变量
C++11标准规定,允许将变量声明为constexpr类型以便编译器验证变量是否是一个常量表达式
声明为constexpr的变量一定是常量,并且必须使用常量表达式进行初始化
字面值类型
指针和constexpr
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现