C++(指针常量、常量指针)

在C++中,常量指针和指针常量是两个不同的概念,它们涉及到指针和常量的组合。让我们来详细解释它们的含义:

  1. 常量指针(Constant Pointer):

    • 一个常量指针是指针本身是常量,它指向的内容可以被修改。
    • 一旦指针被初始化指向某个变量,就不能再指向其他变量。
    • 通过指针可以修改所指向的变量的值。
    int x = 10;
    int y = 20;
    
    // 常量指针,指向整数,但指针本身是常量
    const int* ptr = &x;
    
    // 合法,因为ptr指向的内容可以修改
    x = 15;
    
    // 非法,因为ptr本身是常量,不能指向其他变量
    // ptr = &y; // 编译错误
    
    // 合法,因为ptr指向的内容可以修改
    *ptr = 25;
    
  2. 指针常量(Pointer to Constant):

    • 一个指针常量是指针指向的内容是常量,但指针本身可以被修改。
    • 一旦指针被初始化指向某个变量,就可以指向其他变量。
    • 通过指针不能修改所指向的变量的值。
    int x = 10;
    int y = 20;
    
    // 指针常量,指针本身是变量,但指向的内容是常量
    int* const ptr = &x;
    
    // 合法,因为ptr指针本身可以修改
    ptr = &y;
    
    // 合法,因为ptr指向的内容是常量,不能修改
    // *ptr = 25; // 编译错误
    

总结一下:

  • 常量指针:指针本身是常量,指向的内容可以修改。
  • 指针常量:指针本身是变量,指向的内容是常量。

这两个概念在C++中是很有用的,特别是在函数参数、数组等场景中。理解它们有助于正确使用指针并确保数据的安全性。



posted @   做梦当财神  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示