博主介绍:程序喵大人
- 35- 资深C/C++/Rust/Android/iOS客户端开发
- 10年大厂工作经验
- 嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手
- 《C++20高级编程》《C++23高级编程》等多本书籍著译者
- 更多原创精品文章,首发gzh,见文末
- 👇👇记得订阅专栏,以防走丢👇👇
😉C++基础系列专栏
😃C语言基础系列专栏
🤣C++大佬养成攻略专栏
🤓C++训练营
👉🏻个人网站
很多同学貌似经常弄混指针常量和常量指针的区别,主要是因为中文翻译的不是很好,你如果根据它的应为来理解就能方便一些,一个是常量指针(Pointer to Constant),另一个是指针常量(Constant Pointer),它们是两个完全不同的概念,其核心在于表示不同的内存访问权限。
下面详细介绍。
常量指针(Pointer to Constant)
常量指针是指指向常量的指针,即该指针指向的值不能被修改(通过该指针)。换句话说,你可以改变指针的指向,但不能通过该指针改变它所指向的值。
声明方式:
const 数据类型 *指针名;
// 或者
数据类型 const *指针名;
指针常量(Constant Pointer)
指针常量是指指针本身是常量,即一旦初始化后,其指向的地址就不能再改变。但是,你可以通过该指针修改它所指向的值。
声明方式:
数据类型 *const 指针名;
常量指针常量(Constant Pointer to Constant)
常量指针常量是指既指向常量又本身是常量的指针。即初始化之后,指针指向的地址及其指向的值均只能读取,不能修改。
声明方式:
const 数据类型 *const 指针名;
总结
- 常量指针(Pointer to Constant):可以改变指向,但不能通过该指针修改值。
- 指针常量(Constant Pointer):不能改变指向,但可以通过该指针修改值。
- 常量指针常量(Constant Pointer to Constant):既不能改变指向,也不能通过该指针修改值。
英文比中文更容易理解。
码字不易,欢迎大家点赞,关注,评论,谢谢!
C++训练营
专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得大厂offer!