首页 > 后端开发 > C++ > 正文

C++ const关键字详解_C++常量指针与指针常量区别

冰火之心
发布: 2025-11-30 15:50:03
原创
991人浏览过
常量指针指指向的内容不可改,指针本身可变;指针常量指指针本身不可变,指向内容可改;const在左修饰内容,在右修饰指针,二者结合则均不可变。

c++ const关键字详解_c++常量指针与指针常量区别

在C++中,const关键字用于定义不可修改的变量或对象,帮助提高程序的安全性和可读性。特别是在指针操作中,const的使用方式多样,容易混淆。理解“常量指针”和“指 针常量”的区别是掌握const用法的关键。

const的基本作用

const修饰的变量值不能被修改,编译器会在编译期检查是否违反const约束。

const int a = 10;
a = 20; // 编译错误:不能修改const变量

const可以用于变量、函数参数、返回值、成员函数等场景。

常量指针(const pointer)

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

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

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

判断方法:const在*左边,修饰的是指针指向的内容,即“内容为常量”。

Qwen
Qwen

阿里巴巴推出的一系列AI大语言模型和多模态模型

Qwen 691
查看详情 Qwen

指针常量(pointer to const)

更准确的说法是“指针本身的常量”,即指针的值(地址)不能改变,一旦初始化后就不能再指向其他地址,但可以通过指针修改所指向的内容。

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

判断方法:const在*右边,修饰的是指针本身,即“指针为常量”。

指向常量的常量指针

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

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

这种写法同时限制了指针的指向和所指向内容的修改。

常见记忆技巧

  • 从右向左读声明:
    const int* ptr → ptr是指向int型常量的指针。
    int* const ptr → ptr是指向int的常量指针。
  • 看const在*的哪边:
    在左边(const*),内容不能改;
    在右边(*const),指针不能改。

基本上就这些。只要分清const修饰的是“指向的内容”还是“指针本身”,就能正确理解和使用。实际编程中,合理使用const能有效防止意外修改,提升代码质量。

以上就是C++ const关键字详解_C++常量指针与指针常量区别的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号